2012-05-07 16 views
5

başlığına sağladığı string metniyle geçer Chapter 5 of RailsTutorial.org'dan geçiyorum.RSpec başlık testi, full_title değişkeni ile başarısız olur, ancak full_title değişkeninin

Ne yaptığım önemli değil, çalışamayacağım bir test var. Değişkenin geçtiği dizeye koyduğumda geçer, ama değişkenin kendisinin içine girdiğimde değil.

hata tanımsız yöntem 'full_title' (Ben bu kadar yazdıktan sonra tarama ilgili sorular 30 dakika sonra bir cevap bulamadık.)

yüzeysel bir testi, istenen içerik görüntüler Doing diyor app, başlık 'Kaydol' ile tam başlık içerir. İşte

benim kodudur:

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 

hata Bu kodu kullandığınızda tanımsız yöntem 'full_title'

Geçer dediğinde budur:

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 

için teşekkürler yardımın! Adam

+2

Özellikleriniz nelerdir? Spec/support/utilities.rb'? – thoferon

+0

Bunu özledim. Şimdi deniyorum. – ATSiem

+0

Heh, 5. bölümde de aynı sorunla karşılaşıyorum ve Google'ın bir çözüm olup olmadığını görmek için Google'a başvurdum. Seni bilmiyorum ama benim spec/support/utilities.rb dosyası fonksiyonunu içeriyor ve bu dosya otomatik olarak yüklenmiyor gibi görünüyor, ama bunu test etmek zorunda kalacağım. – Gerry

cevap

7

, full_title testler çalışması o 3.

+0

Aynı, bu çizgiyi tamamen özledim! Teşekkür ederim! –

+1

Ve Andriy Yurchuk'un dediği gibi, bunu kullanıyorsanız Muhafızı yeniden başlatın. – jmosesman

11

yeniden başlatma Muhafız sorunu giderip tam Bölümünden bir yinelenen yönteme benziyor beri kazara onu atlanır Listing 5.26

den spec/support/utilities.rb oluşturmak için emin olmak için .

+0

bu benim için çalıştı. Bende aynı problem vardı. Muhafız çalıştırmak için komut, bundle exec guard – hatunike

+0

Bu benim için çalıştı. Başka bir şey yapmadan önce her zaman Muhafazayı yeniden başlattığınızdan emin olun. – narzero

6

Aynı problemi aldım ve işte bu şekilde çözdüm. Dosya /spec/support/utilities.rb aşağıdaki kodu sahip olduğundan emin olun:

include ApplicationHelper 

Bu sorunu çözecektir.

+0

Bunun için sakınca var mı? Ben bu çözümü tercih ediyorum çünkü başka bir dosyada – Bert

0

Tam olarak aynı soruna rastladım ... 20 dakika kafamı duvara çarptığında sonunda neyin yanlış olduğunu gördüm: rspec/support klasörünü suppport olarak adlandırdım. Hiç merak ediyorum spec_helper.rb bulunamadı. * facepalm *

+0

başka bir dosyada 'ApplicationHelper' kod çoğaltılması azaltır: Ben yanlışlıkla oluşturulduğunda istek dizinindeyim çünkü "rspec/requests/support/utilities.rb" dosyasını yarattım destek/dizin. – 7stud

1

Eğer yazıyorsanız: config.include ApplicationHelper spec_helper.rb içine her şey iyi çalışacaktır, ama o anda mantık göremiyorum mantıksal program.rb spec/support içine (her şey olmadan çalışır)

İlgili konular