rspecで stub_const がランダムで落ちてました。
stub_const("Hoge::PER_PAGE",2)
というコード。
spec_helperのconfig.orderを”random”に指定しているので、落ちたときのseed値を指定して実行すると100% failer します。。
$ bundle exec rspec --seed 10203 --fail-fast
色々調べた結果、Hogeというclassが定義される前にstub_constを実行されると落ちていました。
Hogeの定義ごとstub_constが乗っ取ってしまうので、Hogeクラスが空っぽになってしまうんですね!
当該クラスをrequireするとか、手前で明示的にHogeを無意味に呼んでおくとか、色々考えましたが、イケてない。。
結論
もっと調べたらgithubにissueがありました。
stub_const("#{Hoge}::PER_PAGE",2)
とするのが正しいそうです。
なるほど、頭良すぎだろ悔しい。
stub_const を使うときに当該定数までのnamespaceやclassは式展開で指定するといい感じっぽいです!