1. RyosukeKawamura

    Posted

    RyosukeKawamura
Changes in title
+Rspecでwarning: toplevel constantが出る現象に対応する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,33 @@
+# 現象
+railsの開発で、名前空間が別で同じ名称のコントローラを作ることがあると思います。
+例えば、hoges_controller.rbとfuga/hoges_controller.rbのような場合です。
+
+ここでそれぞれにcontrollersのspecを書いて、
+
+```
+rake spec
+```
+
+等で一気に全部テストを実行すると、
+
+```
+warning: toplevel constant HogesController referenced by P
+Fuga::HogesController
+```
+
+というような警告が出て、クラスがうまく読まれず、単発では通るspecが場合によってはエラーで落ちてしまうこともあります。
+
+
+# 環境
+* ruby 2.2.1
+* rails 4.2.3
+* rspec 3.4.1
+
+# 対応方法
+下記のように設定を追加するとクラスが正しく読み込まれ、解決します。
+
+```spec/spec_helper.rb
+Dir[File.expand_path("app/controllers/fuga/*.rb")].each do |file|
+ require file
+end
+```