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
的值是否发生变化?
我正在使用 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
的值是否发生变化?