2.5からは定数探索のルールが変わったため、この記事で書いているような問題は発生しなくなりました。2.5環境だと、この記事で使用したテストケースはどちらも正常に実行されます。5.2で実行可能なサンプルコードを以下にアップしています。2.5以上が必須になるので、自ずとこの問題は発生しなくなります。6.0版のサンプルコードです。6では当てはまらない部分があります。constant"という警告が発生し、エラーが起きる原因になります。同名のクラスがトップレベル(ネームスペース無し)に存在している場合にこの警告が出ます。)トラブルが発生するケースここではサンプルアプリケーションとして架空のブログアプリケーションを考えます。仕様は以下の通りです。ようなURLにアクセスする以下はこのアプリケーションのソースコードです。'blogs#index'endコントローラここではindexとshowのみを記載します。endendテストコード(コントローラスペック)前述の仕様を検証するため、次のようなテストコードを書きました。endendテストコードの実行結果(失敗)上記のテストコードは問題なくパスするはずですが、なぜか以下のようなエラーが出て失敗しました。エラーが発生しています。そこで、このテストコードだけを単体で動かしてみることにしました。38943あれあれ?今度はなぜかパスしてしまいました。(一般ユーザー用)が実行されてしまうためです。Staff::BlogsControllerが呼び出されないのかというと、クラスが呼び出される順番と、Rubyの定数(=クラス名)探索の仕様を理解する必要があります。Staff::BlogsController上の出力結果を参考にしながら、RSpecの全体実行時に何が起きているのかを順に表すとこうなります。RSpecがspecディレクトリ内のファイルを順に読み込む。