Closed1
[解決事件] Mockitoのでメソッドの戻り値を指定するとNullPointerExceptionが発生する
interface Specification {
boolean isSatisfiedBy(User user);
}
このようなインターフェイスがあって、そのインターフェイスを使用しているメソッドのテストを記述している。
@Test
void test() {
...
Specification specification = mock(Specification.class);
when(specification.isSatisfiedBy(any())).thenReturn(true);
...
}
テストは成功していた。
仕様変更で`isSatisfiedByの引数にint型のrevisionが追加された。
interface Specification {
boolean isSatisfiedBy(User user, int revision);
}
で、単純にモックの引数にany()を追加した。
@Test
void test() {
...
Specification specification = mock(Specification.class);
when(specification.isSatisfiedBy(any(), any())).thenReturn(true);
...
}
するとwhen(specification
のところで、NullPointerExceptionがでた。
ググったところ、文字列やint型はそれに合ったanyがあるとのこと、when(specification.isSatisfiedBy(any(), anyInt()))
にしたところ、テストが成功した。
このスクラップは2021/12/17にクローズされました