わからん...

ruby test/functional/hogehoge_controller_test.rb

ってコマンドから動かすとテストは無事終了するのに、rakeからまとめて実行すると一箇所テストが通らない部分がある。

うー、今日はこの解決で終わるかも。

解決

おそらくこれと同じ現象。

@something = Something.find_by_id(params[:id]) || Something.new

で、params[:id]がnilなら、当然Something.newが実行されるはずなんだけど、テストをrakeから連続で呼び出すと@somethingにキャッシュの値が入ってしまい、@somethingが非nilとなって、想定外の動作になっていた、と。

さらに追記

上記記事から、原因の説明にリンクがはられていた。とりあえずfind_by_idは避けておこう...
今日は脳みそが非常に疲れたので今からジムいってくる♪

ジムにいって頭がすっきりした

@something = params[:id].nil? ? Something.new : Something.find_by_id(params[:id])||Something.new

これでいいのか?