先日、アプリの機能テストの1つを実行したときに、コードにバグが発生し、が発生していましたRoutingError
。私の機能テストはページをロードしていて、そのページに有効なルートがないページへのリンクを作成していました。ただし、例外の具体的な原因は重要ではありません。問題は、この例外がテストに戻されなかったことです。例外が発生したことを私が知っている唯一の理由は、test.log
ファイルで例外に気付いたためです。要するに、テストは合格しましたが、それは失敗としてカウントされるべきだと思います!
これは私を混乱させました。テストコードをブロックに入れてみましたassert_nothing_raised
が、それでも合格しました。
さらに掘り下げてみると、アプリによってスローされた例外はすべてサイレントにログに記録されており、テストが失敗することはないことがわかりました。これはRailsでの意図的な動作ですか、それとも何かが間違って設定されているように聞こえますか?
編集:問題は、Railsが例外をキャッチして処理することである可能性があると思います(ブラウザーから要求が送信されたときに、おなじみのスタックトレースページを表示できるようにするため)。なぜこれがdevelopment
環境で役立つのかはわかりますが、確かに環境ではそうではありませんtest
...?