Mockito-void関数に対するthenCallRealMethod()

CRDamic:

こんにちは、JUnitテストケースを作成しようとしたときに問題に遭遇しました。Mockitoは比較的新しいです。

私がモックしているクラスの関数がありますが、この関数はたまたまvoid戻り型です。私のモッククラスからこの関数を呼び出すとき、元の関数を呼び出さないことが私の理解(およびデバッグ経験)です。これを克服するために、「thenCallRealMethod()」で「when」を使用しようとしました。

    when(instance.voidFunction()).thenCallRealMethod();

「voidFunction」は、起動したくないロジックでいっぱいです。これを回避するために、これらをwhenステートメントに抽出しました。私はの形式を使用する必要があることを読みましたがdoReturn().when().voidFunction()、これを実行しても実際のメソッドは呼び出されません。

「when」ステートメントの前にvoidFunction()が呼び出されないようにするため、ここではSpyを使用できないことも理解しました。少し読んでもmockitoに関する私の理解があまり良くないので、これが非常に簡単な解決策であるならば、どんな助けでも感謝します。ありがとう!

ジェフ・ボーマン:

このwhen構文はvoidメソッドでは機能せず(内に収まりませんwhen)、doReturn戻り値がない場合は適用されません。doCallRealMethodおそらくあなたが望む答えです。

doCallRealMethod().when(instance).voidFunction();

モックで実際のメソッドを呼び出す場合、スパイとは異なり、モックされたオブジェクトはフィールドを設定するものを含むすべてのコンストラクターおよびイニシャライザの呼び出しをスキップするため、実際の動作が得られない場合があることに注意してください。つまり、メソッドがインスタンス状態をまったく使用する場合、doCallRealMethodまたはでモックとして機能することはほとんどありませんthenCallRealMethodスパイを使用すると、クラスの実際のインスタンスを作成でき、Mockito.spyメソッドはそのインスタンスの状態をコピーして、より現実的な相互作用を実現します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Mockito-void関数に対するthenCallRealMethod()

分類Dev

Mockito-void関数に対するthenCallRealMethod()

分類Dev

Mockito中にInvocationTargetException

分類Dev

Kotlin関数のMockito ArgumentCaptor

分類Dev

Kotlin関数のMockito ArgumentCaptor

分類Dev

Mockito、void関数のSystem.outへのチャネル出力?

分類Dev

Mockitoを使用する理由

分類Dev

Mockitoを使用する理由

分類Dev

Kotlin + Mockito:nullを取得する

分類Dev

org.mockito.exceptions.misusing.MissingMethodInvocationExceptionに対処する方法は?

分類Dev

org.mockito.exceptions.misusing.MissingMethodInvocationExceptionに対処する方法は?

分類Dev

Mockito-`when`は代わりに関数を実行します

分類Dev

ラムダ関数を検証する方法をMockito

分類Dev

Mockitoエラーは引数に適用されません(void)

分類Dev

AkkaStreamsをあざけるMockito

分類Dev

Mockito returnsFirstArg()を使用します

分類Dev

org.mockito.Mockito.times(1)に便利な方法はありますか?

分類Dev

Mockito thenThrowがmockito例外をスローする

分類Dev

使用された変数に対してnullポインター例外をスローするMockitoメソッド

分類Dev

Mockitoを使用して、Mockitoに余分な呼び出しを行わずに関数の呼び出し回数を確認する方法

分類Dev

リストに関するMockitoの問題

分類Dev

Mockitoでvoidメソッドをモックする方法

分類Dev

voidメソッドをテストするためのMockito

分類Dev

voidメソッドをモックするMockito

分類Dev

mockito を使用して void メソッドをスタブする

分類Dev

Mockito-すべての引数を正確に確認する

分類Dev

Java JUnitとMockito(Spring Boot)を使用して静的関数に渡された引数を検証する方法

分類Dev

実際のオブジェクトに対するMockitoの「いつ」

分類Dev

Mockito / PowerMocktio doNothing for none voidメソッド

Related 関連記事

  1. 1

    Mockito-void関数に対するthenCallRealMethod()

  2. 2

    Mockito-void関数に対するthenCallRealMethod()

  3. 3

    Mockito中にInvocationTargetException

  4. 4

    Kotlin関数のMockito ArgumentCaptor

  5. 5

    Kotlin関数のMockito ArgumentCaptor

  6. 6

    Mockito、void関数のSystem.outへのチャネル出力?

  7. 7

    Mockitoを使用する理由

  8. 8

    Mockitoを使用する理由

  9. 9

    Kotlin + Mockito:nullを取得する

  10. 10

    org.mockito.exceptions.misusing.MissingMethodInvocationExceptionに対処する方法は?

  11. 11

    org.mockito.exceptions.misusing.MissingMethodInvocationExceptionに対処する方法は?

  12. 12

    Mockito-`when`は代わりに関数を実行します

  13. 13

    ラムダ関数を検証する方法をMockito

  14. 14

    Mockitoエラーは引数に適用されません(void)

  15. 15

    AkkaStreamsをあざけるMockito

  16. 16

    Mockito returnsFirstArg()を使用します

  17. 17

    org.mockito.Mockito.times(1)に便利な方法はありますか?

  18. 18

    Mockito thenThrowがmockito例外をスローする

  19. 19

    使用された変数に対してnullポインター例外をスローするMockitoメソッド

  20. 20

    Mockitoを使用して、Mockitoに余分な呼び出しを行わずに関数の呼び出し回数を確認する方法

  21. 21

    リストに関するMockitoの問題

  22. 22

    Mockitoでvoidメソッドをモックする方法

  23. 23

    voidメソッドをテストするためのMockito

  24. 24

    voidメソッドをモックするMockito

  25. 25

    mockito を使用して void メソッドをスタブする

  26. 26

    Mockito-すべての引数を正確に確認する

  27. 27

    Java JUnitとMockito(Spring Boot)を使用して静的関数に渡された引数を検証する方法

  28. 28

    実際のオブジェクトに対するMockitoの「いつ」

  29. 29

    Mockito / PowerMocktio doNothing for none voidメソッド

ホットタグ

アーカイブ