Java Junit方法测试条件

Java Junit方法测试条件,java,junit4,Java,Junit4,假设我有这个java方法: boolean sample(){ boolean returne = false; if( (a>b || b>c) && d>e ){ returne = true; } return returne; } 为了确保我已经对我的方法进行了很好的单元测试,我是否应该在我的单元测试方法中包括所有这些场景: 测试a>b或b>c和d>e的位置 a=b或b=c且d=e时的试验 测试 测试a>b或b=c且d>e ...

假设我有这个java方法:

boolean sample(){
  boolean returne = false;
  if( (a>b || b>c) && d>e ){
    returne = true;
  }
 return returne;
}
为了确保我已经对我的方法进行了很好的单元测试,我是否应该在我的单元测试方法中包括所有这些场景:

测试a>b或b>c和d>e的位置 a=b或b=c且d=e时的试验 测试 测试a>b或b=c且d>e .... 带着所有的可能性。。。
正如@abubakkar建议的那样,这个工具通过更改类的字节码来进行变异测试,因此,针对所有可能出现的故障、bug和未发现的问题运行测试

如果您使用IDE,它们会提供基本的代码覆盖率工具,告诉您有多少代码测试得很好,因此您可以要求它以代码覆盖率运行单元测试,然后添加覆盖缺失场景的测试。IDE提供100%的代码覆盖率,但这不是关于覆盖率,而是关于代码覆盖率工具不报告的测试场景。如果您使用的是EclipseIDE,您可以安装eclemma插件以实现代码覆盖率。这将告诉您是否错过了此方法/类的任何分支。是-包括所有场景以执行所有代码分支。包括你在文章中提到的边缘案例。并考虑测试驱动开发,或者至少在TDD附近。编写一些代码并添加一个新的单元测试。重复以合理的信心重构。代码覆盖率自然会达到100%。好的,那么您可能正在寻找突变测试,看看eclipse和intellij中也有一个用于此的插件。但请记住,根据您选择的配置,变异测试比正常代码覆盖时间要长。