gpt4 book ai didi

java - Mockito:验证在特定点调用方法

转载 作者:行者123 更新时间:2023-11-29 03:42:42 25 4
gpt4 key购买 nike

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

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 正确验证这一点?

最佳答案

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

关于java - Mockito:验证在特定点调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12431436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com