2010-02-11 32 views

Respuesta

39

Incluya el módulo ActionView::Helpers::DateHelper en sus archivos test_helper.rb o 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" 
+1

Argh, eso realmente me dio un vuelco, sheesh, tenía este código en un archivo de inicializador y no pudo encontrar el método. ¡Gracias! – Bob

+0

Gran trabajo, gracias –

+0

Desde la consola, también puede acceder a funciones de ayuda con 'irb (principal): 110: 0> helper.time_ago_in_words 3.minutes.ago' – Chloe

-1

¿Qué está intentando exactamente probar? No debería necesitar verificar el comportamiento del time_ago_in_words en sí mismo, porque eso está cubierto por las propias pruebas de Rails. Si está probando uno de sus propios ayudantes que usa time_ago_in_words, la salida se puede verificar en una prueba auxiliar (que hereda de ActionView::TestCase).

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 (ID). Normalmente trato de evitar usarlos para verificar el contenido de las etiquetas.

+0

¿Por qué votaron negativamente? –

0

Tuve un problema similar recientemente cuando intentaba acceder a esta función desde una API, así que lo envolví en una gema llamada timeywimey. Compruébelo: https://github.com/onetwopunch/timeywimey#usage

Le permite acceder a esta ayuda desde cualquier lugar en un proyecto de Rails, así como en Sinatra, y un proyecto de rubí nativo.

0

I añadido el rails_helper.rb

config.include ActionView::Helpers::DateHelper 

y el trabajo de, gracias de @jpemberthy!