Я изучаю Ruby на данный момент, и я решил переучить себя некоторыми шаблонами дизайна из онлайн-уроков (http://www.sitepoint.com/design-patterns-in-ruby-observer-singleton/). Поэтому у меня есть два класса файлов:Почему этот тест не работает?
автомобилей
require_relative 'Notifier'
require 'observer'
class Car
include Observable
attr_reader :mileage, :service
def initialize(mileage = 0, service = 3000)
@mileage, @service = mileage, service
add_observer(Notifier.new)
end
def log(miles)
@mileage += miles
changed
notify_observers(self, miles)
end
end
И Notifier:
class Notifier
def update(car, miles)
puts "The car has logged #{miles} miles, totalling #{car.mileage} miles traveled."
puts "The car needs to be taken in for a service!" if car.service <= car.mileage
end
конец
Вот мой тест:
require_relative 'car'
require "test/unit"
class CarTest <
Test::Unit::TestCase
def test_simple
assert_equal("The car has logged 100 miles, totaling 2400 miles traveled.", Car.new(2300, 3000).log(100))
end
end
Но всякий раз, когда я бегу тест я получаю этот fai подумал, знает ли кто-нибудь, почему это происходит?
[1/1] CarTest#test_simpleThe car has logged 100 miles, totalling 2400 miles traveled.
= 0.00 s
1) Failure:
test_simple(CarTest) [car_test.rb:8]:
<"The car has logged 100 miles, totaling 2400 miles traveled."> expected but was
<false>.
'puts' печатает на стандартный вывод. Но ваш тест ожидает возвратного значения из 'Car # log'. Вот почему он терпит неудачу. –
Ой, вау, спасибо, что бы я всю ночь гадал! –