2013-02-01 18 views
6

Trong spec của tôi/mô hình/user_spec.rb Tôi có tiếp theo:RSpec để lỗi

require 'spec_helper' 

describe User do 

    before { 5.times { FactoryGirl.create(:sport) } } 
    before { let(:user) { FactoryGirl.create(:user) } } 

    ... 

end 

Nhưng khi chạy user_spec.rb của tôi tôi nhận được lỗi này:

Failure/Error: before { let(:user) { FactoryGirl.create(:user) } } 
NoMethodError: 
    undefined method `let' for #<RSpec::Core::ExampleGroup::Nested_1:0x000001043033b0> 

Đó là lạ vì thông số kỹ thuật của tôi đã làm việc cho đến bây giờ, và tôi đã không thay đổi bất cứ điều gì ...

đây là gemfile tôi: https://gist.github.com/4690919

Đây là spec_helper.rb tôi: https://gist.github.com/4690935

Tôi đánh giá cao sự giúp đỡ nào, nhờ

+1

spec_helper của bạn là "spec/models /"? hoặc chỉ "/ spec"? – toy

+0

spec_helper của tôi nằm trong/spec –

Trả lời

17

Tôi không biết tại sao nó đã làm việc trước đó, nhưng bạn không bao giờ nên có một khối let bên trong một khối before. Nó nên được gọi từ bên trong một khối describe (hoặc context), như thế này:

describe User do 
    let(:user) { FactoryGirl.create(:user) } 
    before { 5.times { FactoryGirl.create(:sport) } } 
    .... 

Xem the documentation để biết chi tiết.