首页 > 解决方案 > 为什么junit说我的测试方法应该没有参数?

问题描述

我有这个测试方法:

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

当我运行它时,我得到初始化错误和这个异常:

"java.lang.Exception: **Method addNumber should have no parameters**"!

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

标签: unit-testingjunit

解决方案


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

如果要使用带参数的方法,可以使用 Data Providers。下载必要的库并使用 @RunWith(DataProviderRunner.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;
  }

推荐阅读