Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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 当预期出现异常时,针对多个参数的单个JUnit将执行Null检查_Java_Unit Testing_Junit - Fatal编程技术网

Java 当预期出现异常时,针对多个参数的单个JUnit将执行Null检查

Java 当预期出现异常时,针对多个参数的单个JUnit将执行Null检查,java,unit-testing,junit,Java,Unit Testing,Junit,我正在为我的代码编写单元测试用例,其中我有一个方法,它接受7个不同的参数。示例方法如下所示: public boolean registerUser(String firstName, String lastName, String dob, String email, String phone, String gender, String country) throws MyException { if(firstName == null){ throw MyException(

我正在为我的代码编写单元测试用例,其中我有一个方法,它接受7个不同的参数。示例方法如下所示:

public boolean registerUser(String firstName, String lastName, String dob, String email, String phone, String gender, String country) throws MyException {

  if(firstName  == null){
   throw MyException();
  }
  if(lastName  == null){
   throw MyException();
  }
  // SO ON.....
 // EACH PARAMETER WILL BE NULL CHECKED SEPARATELY AS WE NEED TO KNOW WHICH PARAMETER WAS PASSED NULL. 
 // IN CASE OF ANY NULL PARAMETER, A CUSTOM EXCEPTION IS THROWN AS ABOVE.
 // IMPLEMENTATION CODE HERE TO CALL SOME WEB SERVICE AND REGISTER USER.

}
现在我的问题是,我正在为这个特定的方法编写测试用例。在同一个类中,我有大约10个其他方法用于不同的用户操作

所以在本例中,如果我需要在单个JUNIT测试用例中检查null参数,这样我的junits计数就不会因为很多参数而变高

有没有办法在junit上写入所有参数的空检查


谢谢

单独测试有什么问题?对我来说这是最干净的方法,没什么错。但是,如果我为每个参数空检查编写单独的测试用例,那么对于这个方法,我将有7个测试用例,它们只用于空检查。此外,还将有其他测试用例用于阴性/阳性反应。对于一个方法测试用例来说,这个计数不是太高了吗?当然,您可以编写一个测试用例来检查方法中的空检查(使用try-catch块)。但正如TrueDub所说,最干净的方法是进行单独的测试。拥有大量的测试用例是没有问题的。更多的测试提供了更多的覆盖范围,并且使得以后扩展测试更容易——例如,如果其中一个if语句需要做额外的工作,那么在单独的测试中就更容易确定这一点。