問題タブ [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.

0 投票する
0 に答える
71 参照

java - doReturn を使用した Mockito 引数マッチャーの NPE により、他のすべてのテストが失敗する

私はテストクラスTestNGに一緒に使用しています。オブジェクトMockitoを作成しようとしましたが、メソッド呼び出しのスタブに使用されました。引数マッチャーを使用している間、Mockito は、プリミティブ型に一致させるには、必要な引数の型に応じて、、または同様のものを使用する必要があると述べています。したがって、この場合、使用すると.spyArgumentMatchersanyLong()anyInt()anyChar()any()NullPointerException

私は3つの方法を試しました:

  1. NPEany()プリミティブ引数に一致していたため、スローされます
  2. NPE私が使ったので投げられますthrow new NullPointerException()
  3. 例外はスローされません。

以下は私が使用したコードです。(メソッドに使用static importsしました)Mockito

観察:

  1. クラス全体を実行すると、すべてのメソッドが失敗します。testThreeスローInvalidUseOfMatchersException
  2. 3 番目の方法を単独で実行すると、PASS になります。
  3. コメントtestOneしてから実行クラス全体を実行すると、testTwoFAIL になり、testThreePASS になります。

上記の私の観察では、2 と 3 は予想どおりです。testThreeしかし、なぜ観測1でも失敗しているのかわかりません。コンソールを確認すると、

このメッセージは、最後のマッチャーが any() のようなオブジェクトを返すが、スタブ化されたメソッド シグネチャがプリミティブ引数を想定している場合、NullPointerException の後に表示されることがあります。

だから私の質問は、以前のテスト方法の問題が原因でテスト方法が失敗するのはなぜですか?

(また、アルファベット順で最後に実行されるように名前testOneを変更すると、クラス レベルでのテスト実行時に PASS になります。)testZZtestThree

0 投票する
0 に答える
40 参照

spring - Mockito.when で使用するための Map の一致する値

親愛なる、私は Mockito を使用して、マップに含まれる値に基づいてさまざまなモックを作成しようとしています。ドキュメントに従って、ロジックを実行する 2 つの異なる ArgumentMatchers を作成しました

次のようにモックを作成すると:

エラーが発生しました:

また、ArgumentMatchers のインスタンスを作成しようとしましたが、それでもエラーが発生しました。助言がありますか?

ありがとう