問題タブ [argument-matcher]
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 - doReturn を使用した Mockito 引数マッチャーの NPE により、他のすべてのテストが失敗する
私はテストクラスTestNG
に一緒に使用しています。オブジェクトMockito
を作成しようとしましたが、メソッド呼び出しのスタブに使用されました。引数マッチャーを使用している間、Mockito は、プリミティブ型に一致させるには、必要な引数の型に応じて、、または同様のものを使用する必要があると述べています。したがって、この場合、使用すると.spy
ArgumentMatchers
anyLong()
anyInt()
anyChar()
any()
NullPointerException
私は3つの方法を試しました:
NPE
any()
プリミティブ引数に一致していたため、スローされますNPE
私が使ったので投げられますthrow new NullPointerException()
- 例外はスローされません。
以下は私が使用したコードです。(メソッドに使用static imports
しました)Mockito
観察:
- クラス全体を実行すると、すべてのメソッドが失敗します。
testThree
スローInvalidUseOfMatchersException
- 3 番目の方法を単独で実行すると、PASS になります。
- コメント
testOne
してから実行クラス全体を実行すると、testTwo
FAIL になり、testThree
PASS になります。
上記の私の観察では、2 と 3 は予想どおりです。testThree
しかし、なぜ観測1でも失敗しているのかわかりません。コンソールを確認すると、
このメッセージは、最後のマッチャーが any() のようなオブジェクトを返すが、スタブ化されたメソッド シグネチャがプリミティブ引数を想定している場合、NullPointerException の後に表示されることがあります。
だから私の質問は、以前のテスト方法の問題が原因でテスト方法が失敗するのはなぜですか?
(また、アルファベット順で最後に実行されるように名前testOne
を変更すると、クラス レベルでのテスト実行時に PASS になります。)testZZ
testThree
spring - Mockito.when で使用するための Map の一致する値
親愛なる、私は Mockito を使用して、マップに含まれる値に基づいてさまざまなモックを作成しようとしています。ドキュメントに従って、ロジックを実行する 2 つの異なる ArgumentMatchers を作成しました
次のようにモックを作成すると:
エラーが発生しました:
また、ArgumentMatchers のインスタンスを作成しようとしましたが、それでもエラーが発生しました。助言がありますか?
ありがとう