具有以下课程:
class ToTest{
@Autowired
private Service service;
public String make(){
//do some calcs
obj.setParam(param);
String inverted = service.execute(obj);
return "<" + inverted.toString() + ">";
}
}
我想添加一个测试,它断言 service.execute 是使用带有参数 X 的对象调用的。
我会通过验证来做到这一点。我想模拟这个调用并让它返回一些可测试的东西。我这样做是有期望的。
@Tested
ToTest toTest;
@Injected
Service service;
new NonStrictExpectations(){
{
service.exceute((CertainObject)any)
result = "b";
}
};
toTest.make();
new Verifications(){
{
CertainObject obj;
service.exceute(obj = withCapture())
assertEquals("a",obj.getParam());
}
};
我在 obj.getParam() 上得到一个空指针。显然验证不起作用。如果我消除它的期望,但我会在inverted.toString() 中得到一个空指针。
你们将如何进行这项工作?