如何检查在被测方法中创建的对象的值?

时间:2019-05-20 10:19:35

标签: java unit-testing junit mockito powermock

我正在测试服务层的方法,该方法可以创建一个新对象并使用该对象调用另一个服务。

该方法涉及一些处理,根据这些处理将一些值设置到创建的对象中。

如何验证对象中是否设置了正确的值?

public class A{
    void method aMethod(){
        //some json parsing... a = someValue;
        Xobject xobject = new Xobject();
        xobject.setValue(a);

        someOtherService.someVoidMethod(xobject);
    }
}

想检查xobject的值。

2 个答案:

答案 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的交互。