Используя маршруты ресурсов, вы можете делать такие вещи, как url_for (@apple), чтобы получить URL-адрес для этого конкретного метода «show» ресурсов. Однако при тестировании с использованием Mocha для макетирования моих объектов у меня возникают проблемы при создании подходящего пути к ресурсу.
например. Рассмотрим пример того, как url_for маршруты:
@apple.id # => 4
url_for(@apple) #=> domain.com/apples/4
Это эквивалентно более многословному:
url_for(:controller => 'apples', :id => 4, :method => :show)
Пытаясь проверить свои взгляды, я использую Мокко для макетирования своих объектов.
Apple.stubs(:color => 'red') # returns a MochaExpectation, rather than an instance of Apple.
Итак, в моем тесте:
assigns[:apple] = @apple = Apple.stubs(:color => 'red')
url_for(@apple) #=> raises undefined method `mocha_expectation_path'
Как я могу приблизиться к этому? Похоже, что заглушки должны возвращать Apple