2012-05-07 8 views
5

Estoy pasando por Chapter 5 of RailsTutorial.org.La prueba de título de RSpec falla con la variable full_title, pero pasa con texto de cadena la variable full_title proporciona el título

Tengo una prueba que no puedo hacer, sin importar lo que haga. Pasa cuando pongo en la cadena la variable que pasa, pero no cuando pongo la variable en sí misma.

El error dice método no definido 'full_title' (no pude encontrar una respuesta después de 30 minutos de navegación preguntas relacionadas después de escribir esto.)

Para hacer un análisis superficial, el contenido deseado aparezca en el aplicación, el título incluye el título completo con 'Registrarse'.

Aquí está mi código:

require 'spec_helper' 

describe "User pages" do 

    subject { page } 

    describe "signup page" do 
     before { visit signup_path } 
     it { should have_selector('h1', text: 'Sign up') } 
     it { should have_selector('title', text: full_title('Sign up')) } 
    end 
end 

Esto es cuando el error dice método no definido 'full_title'

Se pasa cuando utilizo este código:

require 'spec_helper' 

describe "User pages" do 

    subject { page } 

    describe "signup page" do 
     before { visit signup_path } 
     it { should have_selector('h1', text: 'Sign up') } 
     it { should have_selector('title', text: 'Ruby on Rails Tutorial Sample App | Sign up') } 
    end 
end 

Gracias por ¡tu ayuda! Adam

+2

¿Qué hay de 'spec/support/utilities.rb'? – thoferon

+0

Me perdí eso. Probándolo ahora. – ATSiem

+0

Heh, me estoy encontrando exactamente con el mismo problema en el capítulo 5 y simplemente encontré Google para ver si había una solución. No sé ustedes, pero mi archivo spec/support/utilities.rb contiene la función y parece que ese archivo no se carga automáticamente, pero tendré que probarlo. – Gerry

Respuesta

7

Para hacer las pruebas full_title trabajo, asegúrese de crear spec/support/utilities.rb de Listing 5.26

me he saltado por accidente, ya que se ve exactamente como un método duplicado del Capítulo 3.

+0

¡Igual, me olvidé completamente de esa línea! ¡Gracias! –

+1

Y como dijo Andriy Yurchuk, reinicie Guard si está usando eso. – jmosesman

11

reinicio Guardia soluciona el problema .

+0

esto funcionó para mí. Yo tuve el mismo problema. El comando para ejecutar Guard es bundc exec guard – hatunike

+0

Esto funcionó para mí. Siempre asegúrese de reiniciar Guard antes de hacer cualquier otra cosa. – narzero

6

Tengo el mismo problema, y ​​así es como lo resolví. Asegúrese de que el archivo /spec/support/utilities.rb tiene el siguiente código:

include ApplicationHelper 

Esto solucionará su problema.

+0

¿Hay inconvenientes en esto? Prefiero esta solución porque reduce la duplicación del código de 'ApplicationHelper' en otro archivo – Bert

0

Me encontré con exactamente el mismo problema ... excepto después de 20 minutos de golpear mi cabeza contra la pared, finalmente vi lo que estaba mal: Llamé a la carpeta rspec/support . No es de extrañar que spec_helper.rb no lo haya encontrado. * facepalm *

+0

Hice algo similar: creé erróneamente el archivo' rspec/requests/support/utilities.rb' porque estaba en el directorio de solicitudes cuando creé el directorio support / – 7stud

1

Si escribe: config.include ApplicationHelper en spec_helper.rb todo funcionará bien, pero en ese momento no veo la lógica para tener file utilities.rb en spec/support (todo funciona sin él)

Cuestiones relacionadas