如何检查在被测方法中创建的对象的值?
How to check the values of object created in method under test?
我正在测试服务层的一种方法,该方法创建一个新对象并使用该对象调用另一个服务。
在将某些值设置到创建的对象中的方法中涉及一些处理。
如何验证对象中设置的值是否正确?
public class A{
void method aMethod(){
//some json parsing... a = someValue;
Xobject xobject = new Xobject();
xobject.setValue(a);
someOtherService.someVoidMethod(xobject);
}
}
想要检查 xobject 的值。
如果您使用 Mockito 为 someOtherService
设置模拟,那么您可以使用 Mockito ArgumentCaptor 来捕获 xobject
,并且在您的测试中您可以访问该变量并对其断言。
https://static.javadoc.io/org.mockito/mockito-core/2.6.9/org/mockito/ArgumentCaptor.html
作为 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);
}
}
测试辅助函数允许您使用 unit-testing 测试代码的算法部分,甚至可能不需要模拟任何东西。然后可以在集成测试中测试与 someOtherService
的交互。
我正在测试服务层的一种方法,该方法创建一个新对象并使用该对象调用另一个服务。
在将某些值设置到创建的对象中的方法中涉及一些处理。
如何验证对象中设置的值是否正确?
public class A{
void method aMethod(){
//some json parsing... a = someValue;
Xobject xobject = new Xobject();
xobject.setValue(a);
someOtherService.someVoidMethod(xobject);
}
}
想要检查 xobject 的值。
如果您使用 Mockito 为 someOtherService
设置模拟,那么您可以使用 Mockito ArgumentCaptor 来捕获 xobject
,并且在您的测试中您可以访问该变量并对其断言。
https://static.javadoc.io/org.mockito/mockito-core/2.6.9/org/mockito/ArgumentCaptor.html
作为 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);
}
}
测试辅助函数允许您使用 unit-testing 测试代码的算法部分,甚至可能不需要模拟任何东西。然后可以在集成测试中测试与 someOtherService
的交互。