This example (shortened here):
class Order
def shipping_cost
total_weight * 5 + 10
end
end
require 'test/unit'
require 'rubygems'
require 'mocha'
class OrderTest < Test::Unit::TestCase
# illustrates stubbing instance method
def test_should_calculate_shipping_cost_based_on_total_weight
order = Order.new
order.stubs(:total_weight).returns(10)
assert_equal 60, order.shipping_cost
end
end
and this snippet (emphasis mine):
The more interesting discussion deals with whether to mock or stub your database-backed model. One upside is speed: This test case will not hit the database at all. Another is independence. I completely isolate the code under test to the controller layer.
convinced me that there just might be some treasure to be found beyond the Test::Unit
. And I know that it’s just the tip of the iceberg.