次のverify()を追加しようとしているかなり複雑なテストケースがあります。
verify(userService).getUserById(anyLong()).setPasswordChangeRequired(eq(Boolean.TRUE));
これは次のエラーで失敗します:
org.mockito.exceptions.verification.TooManyActualInvocations:
userService.getUserById(<any>);
Wanted 1 time:
-> at test.controllers.AuthenticationControllerMockTest.testLookupsExceeded(AuthenticationControllerMockTest.java:404)
But was 4 times. Undesired invocation:
だから私はそれをこれに変更しました:
verify(userService, atLeastOnce()).getUserById(anyLong()).setPasswordChangeRequired(eq(Boolean.TRUE));
そして今、それは失敗します:
java.lang.NullPointerException
at test.controllers.AuthenticationControllerMockTest.testLookupsExceeded(AuthenticationControllerMockTest.java:404)
これはnullを返すため:
verify(userService, atLeastOnce()).getUserById(anyLong())
これは不可解なようです-デフォルト(1回の呼び出しのみ)を使用すると、複数回呼び出されているため失敗しますが、複数回の呼び出しで問題ないと言った場合、呼び出しが見つからないため失敗します!
誰かがこれを手伝うことができますか?