Pregunta

Estoy usando la función '' time_ago_in_words en una vista, y tengo que probar la salida en el FunctionalTest.

Sin embargo, la prueba no puede ver función auxiliar 'time_ago_in_words'.

¿Qué debo hacer con el fin de utilizar estos métodos auxiliares de FunctionalTests?

¿Fue útil?

Solución

Incluir el módulo ActionView::Helpers::DateHelper en su test_helper.rb o archivos test.rb. Y eso es todo, desde la consola de prueba:

>> 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"

Otros consejos

He añadido en rails_helper.rb

config.include ActionView::Helpers::DateHelper

y el trabajo de, gracias de @jpemberthy!

Yo tenía un problema similar recientemente donde yo estaba tratando de acceder a esta función desde una API para que lo envolvió en una gema llamada timeywimey. Compruébelo usted mismo: https://github.com/onetwopunch/timeywimey#usage

Se le permite acceder a esta ayuda desde cualquier parte en un proyecto de carriles, así como Sinatra, y un proyecto de rubí nativa.

¿Qué es exactamente estás tratando de probar? No debería ser necesario para verificar el comportamiento de time_ago_in_words sí, porque eso está cubierto por las propias pruebas de Rails. Si está probando uno de sus propios ayudantes que utiliza time_ago_in_words, la salida se puede comprobar en una prueba de ayudante (que hereda de ActionView::TestCase).

Las pruebas funcionales están destinadas a verificar el comportamiento de los controladores (lo que la plantilla que prestan, si permiten el acceso, redirigir, etc) que puede incluir la comprobación de la presencia de ciertas etiquetas HTML (por id) . Por lo general tratan de evitar el uso de ellos para comprobar el contenido de de las etiquetas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top