首页 > 解决方案 > 如何在 Javaa 中模拟新对象的创建

问题描述

我试图在 java 中模拟一个新的对象创建,但无法这样做。

这是代码。

    public class testClass() {
    private final MyObject myobject;
    private SecondObject secondObject;

    public testClass(MyObject myObject) {
        this.myObject = myObject;
    } 

    public void init() {
        secondObject = new SecondObject(myobject,100,100);
    }
}

请在此示例中说明如何模拟 secondObject。

标签: javamockito

解决方案


的设计testClass使其难以测试(具有讽刺意味)。它依赖于隐藏的第二个类。您最好的选择是公开此依赖项:

interface SecondObjectCreator {
    SecondObject create(TestClass obj, int val1, int val2);
}

class TestClass {
    public TestClass(MyObject obj, SecondObjectCreator creator);
}

这种重新设计使代码易于测试,因为您可以注入以多种方式运行的模拟。


推荐阅读