ラックミドルウェアの問題とRSpecのコントローラテストラック
-
19-09-2019 - |
質問
私はRSpecののコントローラーのAPIをテストする大きな問題を抱えています。今、私は(ウォーデンの)ミドルウェア認証ソリューションを使用している、と私はスペックを実行すると、プロキシが追加しましたミドルウェアでありませんし、すべての認証テストは、あらゆる場所にNilPointerException
sを投げされます。
これは、RSpecのが目的で、最終的なアプリにミドルウェアを追加していない、と私はそれが行くようにするためにモンキーパッチRSPECへの道があるかどうかを知りたいようです。
私はすでに、しかし、これは古い認証バージョンのリファクタリングで、仕事をするために、認証ロジックに依存して、いくつかのコントローラのテストがあり、キュウリと全体のことをテストします。
事前に感謝します。
解決
これは実際にコントローラの呼び出しでラックを使用していないのRails 2.xのためにRSpecのコントローラのAPIを思わので、これは行うことはできません。しかし、(非実績のある)ソリューションはダビデChelimskyが指摘しています。私は彼がRSpecのユーザーのメールリストの上に私を与えた答えを出してあげるます。
コントローラの仕様は本当にレール2に、ラックを通過し、そうではないしません。
統合スペック、ラップレール統合テストAPIがあります。 そう、あなたがレールの統合テストに何かできることを行うことができます。ただ からの要求を変換し、仕様/統合への経由でファイルを移動します 「取得:インデックスは」「『パス/に/インデックス』を取得」するために、あなたはかなりする必要があります 行ってもいいます。
私たちはそれがうまくいく方法を知ってみましょう。
乾杯、 デビッド
私は私のスペックを実行させるために、ダミーのものを行うために認証ロジック方式でApplicationControllerにをからかってしまった、私は提案はダビデによって指摘持つ前にこれをしなかったので、私はその仕事かどうかを知りません。いずれかの方法で私はそれは同じ状況で、他の開発者を助けることを願っています。
他のヒント
関連問題に関するこの記事は、いくつかの光を当てると、最終的にはRSpecの構成でミドルウェア・コンポーネントを指定するための解決策になるかもしれません(私は願っています!)
https://でRSpecの.lighthouseapp.com /プロジェクト/ 5645 /チケット/ 963-要求され、ゼロの#チケット-963から14 の
それは本当にあなたの特定のRails2の問題を解決しないが、このクエリがうまくいけば、彼らはRails3のベータ版を試すような問題が発生した他の人を助け、超えます「RSpecのミドルウェア」のトップを駆け上がります。