在我的spec / models / user_spec.rb中,我有下一个:
require 'spec_helper'
describe User do
before { 5.times { FactoryGirl.create(:sport) } }
before { let(:user) { FactoryGirl.create(:user) } }
...
end
但是在运行我的user_spec.rb时,我收到了这个错误:
Failure/Error: before { let(:user) { FactoryGirl.create(:user) } }
NoMethodError:
undefined method `let' for #<RSpec::Core::ExampleGroup::Nested_1:0x000001043033b0>
这很奇怪,因为我的规格到目前为止一直有效,而且我没有改变任何东西......
这是我的宝石文件:https://gist.github.com/4690919
这是我的spec_helper.rb:https://gist.github.com/4690935
我很感激任何帮助,谢谢
答案 0 :(得分:17)
我之前不知道它为什么会工作,但你永远不应该在let
块内有before
块。它应该在describe
(或context
)块中调用,如下所示:
describe User do
let(:user) { FactoryGirl.create(:user) }
before { 5.times { FactoryGirl.create(:sport) } }
....
有关详细信息,请参阅the documentation。