The goal is clean code that works - Ron Jeffries
So we want to test multiplication and make sure that the "times()" method returns the right amount when passed a multiplier.
public void testMultiplication() {
Dollar five = new Dollar(5);
Dollar product = five.times(2);
assertEquals(10, product.amount);
product = five.times(3);
assertEquals(15, product.amount);
}
class Dollar
attr_reader :amount
def initialize(aAmount)
@amount = aAmount
end
def times(multiplier)
Dollar.new(@amount * multiplier)
end
end
require 'test/unit'
require 'dollar.rb'
class TestDollar < Test::Unit::TestCase
def test_multiplication
five = Dollar.new(5)
product = five.times(2)
assert_equal(10, product.amount)
product = five.times(3)
assert_equal(15, product.amount)
end
end
require 'spec'
require 'dollar.rb'
class DollarSpecification < Spec::Context
def setup
end
def multiplication
five = Dollar.new(5)
product = five.times(2)
product.amount.should.equal 10
product = five.times(3)
product.amount.should.equal 15
end
end