Mockito を使用して特定のメソッドが呼び出されなかったことを確認するにはどうすればよいでしょうか? 質問する

Mockito を使用して特定のメソッドが呼び出されなかったことを確認するにはどうすればよいでしょうか? 質問する

オブジェクトの依存関係でメソッドが呼び出されていないことを検証するにはどうすればよいですか?

例えば:

public interface Dependency {
    void someMethod();
}

public class Foo {
    public bar(final Dependency d) {
        ...
    }
}

Foo テストの場合:

public class FooTest {
    @Test
    public void dependencyIsNotCalled() {
        final Foo foo = new Foo(...);
        final Dependency dependency = mock(Dependency.class);
        foo.bar(dependency);
        **// verify here that someMethod was not called??**
    }
}

ベストアンサー1

さらに意味深いのは:

import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;

// ...

verify(dependency, never()).someMethod();

この機能のドキュメントはここにあります§4 「呼び出し回数の正確な検証 / 少なくとも x 回 / 決して」neverJavadocはここ

おすすめ記事