Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 在IntelliJ IDEA中有没有一种方法可以通过一个方法查看所有路径?_Java_Unit Testing_Intellij Idea - Fatal编程技术网

Java 在IntelliJ IDEA中有没有一种方法可以通过一个方法查看所有路径?

Java 在IntelliJ IDEA中有没有一种方法可以通过一个方法查看所有路径?,java,unit-testing,intellij-idea,Java,Unit Testing,Intellij Idea,我正在为包含嵌套if语句的Java方法编写单元测试。我想通过该方法为每个路径编写一个测试。然而,我发现识别所有路径很困难 下面是一个示例方法,通过该方法有三条路径: publicsvoidmymethod(inti){ 如果(i%2==0) System.out.println(“foo”); 否则{ 如果(i%3==0) 系统输出打印项次(“bar”); 其他的 System.out.println(“baz”); } } 对于此方法,我希望输出如下内容: 如果(i%2==0)

我正在为包含嵌套if语句的Java方法编写单元测试。我想通过该方法为每个路径编写一个测试。然而,我发现识别所有路径很困难

下面是一个示例方法,通过该方法有三条路径:

publicsvoidmymethod(inti){
如果(i%2==0)
System.out.println(“foo”);
否则{
如果(i%3==0)
系统输出打印项次(“bar”);
其他的
System.out.println(“baz”);
}
}
对于此方法,我希望输出如下内容:

  • 如果(i%2==0)
  • if(i%2==0)
    if(i%3==0)
    系统输出.println(“条形”)
  • if(i%2==0)
    if(i%3==0)
    系统输出打印项次(“baz”)

  • IntelliJ IDEA中是否存在类似的功能?如果没有,还有其他工具可以完成这项工作吗?

    使用覆盖率运行测试(在调试图标旁边)然后你可以看到你所覆盖的内容。

    你可以用覆盖率来运行测试,看看你已经覆盖哪些路径,哪些还没有被覆盖。如果很难解释的话,你也可以考虑改写代码:问题是,对于复杂的代码,很难确定所有可能的路径。您可以使用单元测试的代码覆盖率来查看您的测试“访问”了哪些语句,但您可能无法获得测试所覆盖的所有可能的组合-这可能有点过头了。顺便说一句,您通常应该根据一段代码的预期功能(例如,基于某些规范)编写测试而不是取决于代码实际在做什么——除非您知道这一切都是正确的,并且出于回归目的需要测试。如果您的测试基于代码所做的事情,那么即使代码实际上包含bug,它们都会成功。