2015-10-06 19 views
5

rspec-verilen kullanıyorum ve bu hatayı almaya devam ediyorum.rspec-verilen hata `Then` bir örnek içinde mevcut değildir (örneğin, bir` `` `blok)

/başarısızlık: O { Then bir örnek (örneğin, bir it blok) içinden ya da bir örnek (örneğin before, let, vs) kapsamındaki çalıştırmak yapılardan kullanılamaz. Sadece örnek bir grupta kullanılabilir (ör. describe veya context blok).

describe SchoolService do 
    Given(:school) { create(:school_with_applications) } 
    Given(:service) { School.new(@school) } 

    describe 'create_default_programs_and_year_grades!' do 
    it 'checks program size' do 
     When { service.create_default_programs_and_year_grades! } 
     Then { expect(school.programs.size).to eq 3 } 
    end 
    end 
end 

cevap

3

hata mesajı her şeyi söylüyor:

Then is not available from within an example (e.g. an it block) or from constructs that run in the scope of an example (e.g. before, let, etc). It is only available on an example group (e.g. a describe or context block). 

dikkatlice hata mesajı okuyunuz. Ve hata mesajının kendisinde çözüm var.

Bir it bloğunun içinde Then kullanamaz, sadece Then ya describe veya context blokla kullanabilirsiniz.

Yani, sorunu çözmek için, sadece it yerine context kullanın:

describe SchoolService do 
    Given(:school) { create(:school_with_applications) } 
    Given(:service) { School.new(@school) } 

    describe 'create_default_programs_and_year_grades!' do 
    context 'checks program size' do 
     When { service.create_default_programs_and_year_grades! } 
     Then { expect(school.programs.size).to eq 3 } 
    end 
    end 
end 

examples here daha bakın.

+1

Teşekkür ederim çekicilik gibi çalıştı! – wildrails

+0

Sevindim Yardımcı olabilirim! –