スペックコードの中に、before(:all)を記述し、そのdescribeの中で1回だけ実行する事前準備を行いたいのですが、NoMethodErrorでテストがストップしてしまいます。
具体的には、
# Ruby Version: 1.8.6
# Rails Version: 2.1.0
# RSpec Version: 1.1.4
#
#===== Specのコード =======
describe "when user add a new follow." do
fixtures :users, :user_follows
before(:all) do
@yuma = users(:yuma)
@keisuke = users(:keisuke)
end
#====== ...以下、it methodが続く ==========
というスペックコードがあると、spec -fs -c spec/models/スペックファイル.rbをしたとき、
1)
NoMethodError in 'when user add a new follow. before(:all)'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
というエラーが返ります。
上記のスペックファイルの before(:all) を before(:each) や before に置き換えると、itメソッドを評価してくれます(テストとしては失敗になりますが)。
何かRailsでのお約束があるのか、自分のそもそもの使い方がおかしいのか、ご存じの方がいらっしゃいましたら宜しくお願いいたします。
コメント(0件)