我正在测试服务层的方法,该方法可以创建一个新对象并使用该对象调用另一个服务。
该方法涉及一些处理,根据这些处理将一些值设置到创建的对象中。
如何验证对象中是否设置了正确的值?
public class A{
void method aMethod(){
//some json parsing... a = someValue;
Xobject xobject = new Xobject();
xobject.setValue(a);
someOtherService.someVoidMethod(xobject);
}
}
想检查xobject的值。
答案 0 :(得分:0)
如果您使用Mockito设置someOtherService
的模拟,则可以使用Mockito ArgumentCaptor捕获xobject
,在测试中,您可以访问变量并对其进行断言。
https://static.javadoc.io/org.mockito/mockito-core/2.6.9/org/mockito/ArgumentCaptor.html
答案 1 :(得分:0)
作为Jocke提出的解决方案的替代方法,您可以执行以下操作:创建一个帮助程序函数,为您创建xobject
:
public class A {
Xobject makeXobjectFromJson(){
//some json parsing... a = someValue;
Xobject xobject = new Xobject();
xobject.setValue(a);
return xobject;
}
void method aMethod(){
Xobject xobject = makeXobjectFromJson();
someOtherService.someVoidMethod(xobject);
}
}
测试助手功能使您可以使用单元测试来测试代码的算法部分,甚至可能不需要模拟任何东西。然后可以在集成测试中测试与someOtherService
的交互。