Yos*_*sef 22 java testing junit automated-tests unit-testing
可能重复: 单元测试私有方法的最佳方法是什么?
我是初学程序员,我不知道如何编写一个结构良好的单元测试应用程序.我想编写能够在之后添加有效单元测试的应用程序.
问题在于private方法 - 它们无法在类之外进行测试.
我应该改变是所有的方法解决这个问题private来protected,让测试类扩展源类?或者有更好的解决方案吗?
我的解决方案(private splitLetters => protected splitLetters)将如下工作:
来源类:
class MyClass{
protected splitLetters(int num){
return num+2;
}
}
Run Code Online (Sandbox Code Playgroud)
测试类:
class Test_MyClass extend MyClass{
public splitLettersTest(){
for(int i=0;i<100;i++){
System.println(parent.splitLetters(i));
}
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案:
不测试私有方法 - 有时私有方法正在执行非常复杂的任务,应该进行非常好的测试,我们不希望该用户可以访问这些方法.很快,解决方案就是将私有方法改为受保护.
嵌套类测试方法 - 有问题,因为QA在源代码中进行了更改
反思 - 如果这可以调用私有方法,它看起来像一个很好的解决方案http://www.artima.com/suiterunner/private3.html (我应该学习更多来理解反射.我不明白反射如何做如果我们可以从另一个类调用私有方法,那就不要破坏拥有公共和私有方法的所有想法.)
没有定义私有方法(正如我在我的解决方案中所示) - 有问题,因为有时我们必须定义私有方法.
Sjo*_*erd 37
您不应该测试私有方法.
| 归档时间: |
|
| 查看次数: |
35850 次 |
| 最近记录: |