1

假设调用bar()一个Foo对象将依次调用baz()它的Waldo对象,只是在第一次。换句话说,

Foo foo = new Foo();
foo.setWaldo(new Waldo());
foo.bar(); // This calls baz() on the Waldo.
foo.bar(); // This should not call baz() on the Waldo.

这就是我baz()目前验证通话的方式。

Foo foo = new Foo();
Waldo waldo = mock(Waldo.class);
foo.setWaldo(waldo);
foo.bar();
foo.bar();
verify(waldo).baz();

问题在于它无法验证何时baz()被调用。即使baz()第二次foo.bar()被调用,这也会通过。

如何使用 Mockito 正确验证这一点?

4

1 回答 1

4
Foo foo = new Foo();
Waldo waldo = mock(Waldo.class);
foo.setWaldo(waldo);
foo.bar();
verify(waldo).baz();
foo.bar();
verifyNoMoreInteractions(waldo);
于 2012-09-15T06:20:23.387 回答