Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Junit:在没有实例的情况下调用私有方法_Java_Junit_Jmockit - Fatal编程技术网

Java Junit:在没有实例的情况下调用私有方法

Java Junit:在没有实例的情况下调用私有方法,java,junit,jmockit,Java,Junit,Jmockit,应用程序中没有编写JUnit。但在另一个模块中,我们已经开始使用Jmockit编写Junits。因此,任何核心java或Jmockit解决方案都将受到高度赞赏 我有一个应用程序初始化类,它是singleton,它通过调用数据库[数据加载]、属性文件等来初始化应用程序。它的对象创建很复杂 我正在编写新方法来初始化类[methodname addMoreInitilization] 我想为上述场景编写Junit。有没有办法在不调用复杂对象创建逻辑的情况下编写Junit for addMoreInit

应用程序中没有编写JUnit。但在另一个模块中,我们已经开始使用Jmockit编写Junits。因此,任何核心java或Jmockit解决方案都将受到高度赞赏

我有一个应用程序初始化类,它是singleton,它通过调用数据库[数据加载]、属性文件等来初始化应用程序。它的对象创建很复杂

我正在编写新方法来初始化类[methodname addMoreInitilization]

我想为上述场景编写Junit。有没有办法在不调用复杂对象创建逻辑的情况下编写Junit for addMoreInitilization方法,因为它有很多依赖项,模仿它们都是不可行的,也不想使方法成为静态的

下面是ApplicationStartUp类的伪java代码

Class ApplicationStartUp {

   private ApplicationStartUp applicationStartUp;
   // assume single ton implemented

   private ApplicationStartUp () {
       // complex object creation
       addMoreInitilization();
   }

    public static getInstance() {
    }

    // new method
    private addMoreInitilization() {
        // my logic needs to be tested using junit
    }

}

您可以在测试中扩展“ApplicationStartUp”。然后重写不需要的方法。通过这种方式,您可以创建子类的对象并调用超类的方法“addMoreInitialization”。

您可以在测试中扩展“ApplicationStartUp”。然后重写不需要的方法。这样,您可以创建子类的对象,并调用超类的方法“addMoreInitialization”。

您不能重写私有方法;这没什么意义。我尝试的第一件事是扩展ApplicationStartUp类,但不可能调用超类的私有方法。还尝试使用其他东西链接a。反射,但需要初始化对象,它很复杂,所以不值得付出努力。B从JMockit中取消封装类,但它存在反射问题;这没什么意义。我尝试的第一件事是扩展ApplicationStartUp类,但不可能调用超类的私有方法。还尝试使用其他东西链接a。反射,但需要初始化对象,它很复杂,所以不值得付出努力。B从JMockit中取消封装类,但它存在反射问题。