RSpec让错误

Dan*_*ero 6 rspec rspec2 ruby-on-rails-3

在我的spec/models/user_spec.rb中我有下一个:

require 'spec_helper'

describe User do

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

  ...

end
Run Code Online (Sandbox Code Playgroud)

但是当运行我的user_spec.rb时,我收到此错误:

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

这很奇怪,因为我的规格一直在运作,直到现在,我没有改变任何东西......

这是我的gemfile:https://gist.github.com/4690919

这是我的spec_helper.rb:https://gist.github.com/4690935

我很感激任何帮助,谢谢

Chr*_*erg 17

我不知道为什么它之前有效,但你不应该在一个let街区内有一个before街区.它应该从describe(或context)块中调用,如下所示:

describe User do
  let(:user) { FactoryGirl.create(:user) }
  before { 5.times { FactoryGirl.create(:sport) } }
  ....
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档