Я использую функцию 'time_ago_in_words' в представлении, и я должен протестировать вывод в FunctionalTest.
Но тест не видит, что 'time_ago_in_words' помощник функционирует.
Что я должен сделать для использования этих вспомогательных методов от FunctionalTests?
Включите модуль ActionView :: Helpers :: DateHelper
в свой тест test_helper.rb
или .rb
файлы. И все, из тестовой консоли:
>> time_ago_in_words(3.minutes.from_now)
NoMethodError: undefined method `time_ago_in_words' for #<Object:0x3b0724>
from (irb):4
from /Users/blinq/.rvm/rubies/ruby-1.9.1-p376/bin/irb:15:in `<main>'
>> include ActionView::Helpers::DateHelper
=> Object
>> time_ago_in_words(3.minutes.from_now)
=> "3 minutes"
Что именно вы пытаетесь проверить? Вам не нужно проверять поведение самого time_ago_in_words
, потому что это покрывается собственными тестами Rails. Если вы тестируете один из собственных хелперов, использующих time_ago_in_words
, вывод можно проверить в тесте хелпера (который наследуется от ActionView::TestCase
).
Функциональные тесты предназначены для проверки поведения контроллеров (какой шаблон они отображают, разрешают ли они доступ, перенаправляют ли и т.д.), что может включать проверку на наличие определенных HTML-тегов (по id). Обычно я стараюсь не использовать их для проверки содержания тегов.