我应该如何在Java中测试私有方法?
2022-09-01 20:24:32
可能的重复:单元测试私有方法的最佳方法是什么?
我是一个初学者程序员,我不知道如何编写一个结构良好的单元测试应用程序。我想编写应用程序,以便能够在之后添加有效的单元测试。
问题在于方法 - 它们不能在类之外进行测试。private
我是否应该通过更改 to 的所有方法来解决此问题,并让测试类扩展源类?还是有更好的解决方案?private
protected
我的解决方案(私有拆分字母 =>受保护的拆分字母)的工作方式如下:
源类:
class MyClass{
protected splitLetters(int num){
return num+2;
}
}
测试类:
class Test_MyClass extend MyClass{
public splitLettersTest(){
for(int i=0;i<100;i++){
System.println(parent.splitLetters(i));
}
}
}
解决 方案:
不测试私有方法 - 有时私有方法正在执行非常复杂的任务,这些任务应该很好地进行测试,我们不希望该用户有权访问此方法。很快,解决方案正在将私有方法更改为受保护的方法。
嵌套类的测试方式 - 有问题,因为 QA 在源代码中进行了更改
反射 - 如果这可以调用私有方法,那么它看起来是一个很好的解决方案 http://www.artima.com/suiterunner/private3.html(我应该学习更多来理解反射。我不明白如果我们可以从另一个类调用私有方法,反射如何不破坏拥有公共和私有方法的所有想法。
不定义私有方法(正如我在解决方案中所示) - 有问题,因为有时我们必须定义私有方法。