6

私の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

助けていただければ幸いです、ありがとう

4

1 に答える 1

17

なぜ以前は機能していたのかはわかりませんが、letブロックの中にブロックを入れてはいけませんbeforedescribe次のように(or context) ブロック内から呼び出す必要があります。

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

詳細については、ドキュメントを参照してください。

于 2013-02-01T12:20:49.557 に答える