最近またSpringを使い始めたんですが、相変わらずモデルやコントローラ
を変更してもSpringは検知しませんよね?みんなどうしているんだろう?
files in the app directory are not being watched · Issue #115 · rails/spring
このIssueによると、そもそもRailsのリロードはコストが高いため、
Springはリロードが必要ない設計にしているそう。
うーん、、、とは言ったものの実際問題、モデルのメソッドを修正した後
テストを走らせても、変なエラーが出て、手動でリロードさせると直ると
いうことが多々あります。
《続きを読む》
Rails使いよspork, zeusからspringへ!|Act as Professional - hiroki.jp
ようやくspringを試しました。
まだzeusからは乗り換えられないかなー。開発は活発みたいなので、もう
少ししたらまた試します。以下、詳細。
テストを走らせたら、盛大にレッドになった。ちょっと調べたところ、
1と2要因がほとんど。他にもあったかも知れない。3も困るかなあ。
※ この例ではLifeモデルはUserモデルのhas_oneです。
以下のように直す必要がありました。まあ、直せば良いんですけどね。
# 修正前 let(:taro) { FactoryGirl.create :taro_full_profile } let(:life_1) { FactoryGirl.build :life_1, user: taro } # 修正後 let(:taro) { FactoryGirl.create :taro_full_profile } let(:life_1) { FactoryGirl.build :life_1, user_id: taro.id }
これが致命的でした。beforeとかでスタブを設定しても効きませんでした。
before { Life.any_instance.stub(:fun?).and_return false }
手動でbundle exec spring stopする必要がありました。