問題タブ [springmockito]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Mockito と Spring MVC で落ちる Junit テスト ケース
私はmockitoを使用してテストしようとしているコントローラークラスを持っています。
私のテストクラスは以下のとおりです:-
しかし、テストクラスを実行していると、以下のエラーが発生します。助けてください !
java - テストで @MockBean を使用すると、アプリケーション コンテキストの再読み込みが強制されます
BaseITCaseという基本クラスを拡張する Spring Framework でいくつかの統合テストを実行しています。
このような:
問題は、テストの 1 つに複数の宣言があることです: @MockBean が内部にあり、このテストが実行された瞬間、Spring はコンテキストを再作成し、これに続くテストは間違った Bean を使用することがあります (@ を使用してテスト用に正確に作成されたコンテキストから)モックビーン)。Bean のハッシュコードが異なることを確認しただけで、そのことがわかりました。
@EventListener を使用すると、非常に重要になります。間違ったコンテキスト (既に実行が終了したテスト クラスのコンテキスト) のリスナーが呼び出され、そこに間違った Bean があるためです。
そのための回避策はありますか?
すべての @MockBean 宣言を基本クラスに移動しようとしましたが、新しいコンテキストが作成されないため、正常に機能しました。ただし、基本クラスが重くなりすぎます。また、このテスト用にダーティ コンテキストを作成しようとしましたが、次のテストでは、コンテキストが既に閉じられているというメッセージが表示されて失敗します。
java - DAOモックで統合テストコントローラを書くことは不可能ですか?
私は夢中になり、さまざまなテストランナーとテスト用の可能な注釈のすべての可能な組み合わせを試しました。私の必要性の最も近い解決策は次のとおりです。
コントローラーメソッド、サービスメソッドでデバッグモードに入りますが、DAOタイプが表示されると、それはモックではなく、findAll()は常に空のArrayList()を返します。
私は例外を発生させていません。私のDAOは嘲笑されておらず、見つけたすべてのチュートにもかかわらず、どうすればよいかわかりません。私が見つけた私の必要性の最も近いチュートリアルは、Spring MVC テストを使用したこのユニットテストコントローラーでしたが、コントローラーをテストするためにコントローラーにモックサービスを注入したいため、十分ではありませんでした。コントローラーに注入された実際のサービスに挿入された DAO をモックしたい (コントローラ + サービスをテストします)。
テストモードでスプリングアプリケーションによってどのクラスをインスタンス化する必要があり、どのクラスをモックする必要があるかを指定するテストクラスの注釈を使用して、私はすでにそれを行ったようですが、「-_-.
あなたの助けが必要です、それは私を狂わせます!
どうもありがとうございました !!!