Easymock 期望最后调用

Easymock expectLastCall

我正在使用 Easymock 和 junit 来编写我的单元测试。我对此有疑问,我找不到关于它的非常清晰的解释。
如何测试 void 方法
因为他们没有 return 任何东西,所以类似于:

Easymock.expect(myMockObject.func(easymock.isa(String.class))).andReturn("NOTHING TO RETURN HERE");

以上内容无效,因为我没有任何内容 return。
那么,如何设置我的期望值以及如何测试 void 方法?
我开始知道像 easymock.expectLastCall() 这样的东西会适合,但我不确定它的作用以及我们为什么需要它。 非常感谢清晰的解释。

首先,对于 easymock,您不是在测试要测试的方法,而是在模拟它调用的方法。 例如:

public void doSomething(){
  i = otherObject.foo();
  otherObject.bar();
}

方法doSomething(),是您要测试的方法。 i 是你的 class 的成员变量,假设是一个整数。调用 otherObject.foo()otherObject.bar() 是对另一个可以模拟的对象的方法调用(也许它们很难设置,而你只想模拟它们......)。现在假设 bar() 是一个 void 方法,那么对于 otherObject.foo() 你可以设置一个正常的期望,但是对于 bar() 你将需要 expectLastCall().

当您测试 void 方法 (doSomething()) 时,您想检查它的副作用...它是否更改了集合?它创建了一个新的对象吗?或者,在此示例中,i 的值是否发生变化?