Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Unit testing 为什么junit说我的测试方法应该没有参数?_Unit Testing_Junit - Fatal编程技术网

Unit testing 为什么junit说我的测试方法应该没有参数?

Unit testing 为什么junit说我的测试方法应该没有参数?,unit-testing,junit,Unit Testing,Junit,我有这个测试方法: @Test `public void addNumber (int a, int b){` `int c= a+b;` } 当我运行它时,我得到初始化错误&这个异常: 问题是为什么我的测试方法应该没有参数?这是junit测试方法语法要求。试验方法不应有任何参数 如果要使用带参数的方法,可以使用数据提供程序。下载必要的库并用@RunWithDataProviderRunner.class注释该类 然后创建数据提供程序: @DataPro

我有这个测试方法:

@Test
    `public void addNumber (int a, int b){`
        `int c= a+b;`
      }
当我运行它时,我得到初始化错误&这个异常:


问题是为什么我的测试方法应该没有参数?

这是junit测试方法语法要求。试验方法不应有任何参数

如果要使用带参数的方法,可以使用数据提供程序。下载必要的库并用@RunWithDataProviderRunner.class注释该类

然后创建数据提供程序:

  @DataProvider
  public static Object[][] dataProviderMethod() {
    return new Object[][] {
      {1,2},
      {3,4}
    };
  } 
然后像这样写你的junit:

  @Test
  @UseDataProvider("dataProviderMethod")
  public void addNumber (int a, int b) { 
      int c= a+b;
  }

在这个问题上,你可能会重复JUnit:你有测试要执行。其中一个需要两个整数。哪些值应该作为参数传递,为什么?假设你的方法需要一辆汽车、一个插座和一个URL:你把什么作为参数传递,为什么?除此之外:不要把更多的信息放在注释中,或者把注释放在答案中。确保你的问题包含了我们真正需要帮助你的所有信息!我的项目是基于SpringMVC的&它对我没有帮助!我又有例外了!我得到了这个新的异常:没有使用默认解析器为测试“addNumber”找到有效的数据提供程序。按照约定,dataprovider方法名称必须等于测试方法名称,具有某个替换或附加前缀请参见类com.tngtech.java.junit.dataprovider.internal.DefaultDataProviderMethodResolver的JavaDoc或由@UseDataProviderValues明确设置请检查数据提供程序方法名称和@UseDataProvider注释中的值是否相同。对于上面的示例,它是“dataProviderMethod”
  @Test
  @UseDataProvider("dataProviderMethod")
  public void addNumber (int a, int b) { 
      int c= a+b;
  }