Java Junit:在没有实例的情况下调用私有方法
应用程序中没有编写JUnit。但在另一个模块中,我们已经开始使用Jmockit编写Junits。因此,任何核心java或Jmockit解决方案都将受到高度赞赏 我有一个应用程序初始化类,它是singleton,它通过调用数据库[数据加载]、属性文件等来初始化应用程序。它的对象创建很复杂 我正在编写新方法来初始化类[methodname addMoreInitilization] 我想为上述场景编写Junit。有没有办法在不调用复杂对象创建逻辑的情况下编写Junit for addMoreInitilization方法,因为它有很多依赖项,模仿它们都是不可行的,也不想使方法成为静态的 下面是ApplicationStartUp类的伪java代码Java Junit:在没有实例的情况下调用私有方法,java,junit,jmockit,Java,Junit,Jmockit,应用程序中没有编写JUnit。但在另一个模块中,我们已经开始使用Jmockit编写Junits。因此,任何核心java或Jmockit解决方案都将受到高度赞赏 我有一个应用程序初始化类,它是singleton,它通过调用数据库[数据加载]、属性文件等来初始化应用程序。它的对象创建很复杂 我正在编写新方法来初始化类[methodname addMoreInitilization] 我想为上述场景编写Junit。有没有办法在不调用复杂对象创建逻辑的情况下编写Junit for addMoreInit
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中取消封装类,但它存在反射问题。