以下の内容はhttps://arsinput.hatenablog.jp/entry/2022/08/20/120000より取得しました。


【JUnit】Mockの実行何回目かで挙動を変える

スポンサードリンク

Java単体テストJUnitで行っているとき、

特定の箇所の挙動確認でMockをしたとき、同一メソッドを呼んでいる他の箇所でも同じようにMockされテストが上手くいかないということがあると思います。

 

実はJUnitで使用するMockitoでは、Mock時の戻り値や例外を複数回書いてあげることによって、複数回目の処理の処理結果を変更することができるんです。

 

例えば以下のようにテストソースを書いた時、

when(mockClass.mockmethod()).thenReturn("xxx").thenReturn("yyy").thenThrow(new IOException())

 

動作させた処理で

1回目にmockClass.mockmethod()が呼び出された際は"xxx"を返却し、

2回目にmockClass.mockmethod()が呼び出された際は"yyy"を返却し、

3回目にmockClass.mockmethod()が呼び出された際はIOExceptionの例外を投げるといったような記述が可能です。

 

これを使うことで特定の箇所をMockしたいときに他の箇所も併せてMockしてしまい上手くテストできない現象を解消できます。

 

 

 

より詳しいやり方は私が参考にしたサイトを見てください。

Mockitoでメソッドの呼び出し回数によって異なる結果を返す方法 - Reasonable Code




以上の内容はhttps://arsinput.hatenablog.jp/entry/2022/08/20/120000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14