1

我有一个包含 3 个参数化方法的程序,它从命令行接收参数。我想测试它们,并且我已经在 J​​Unit 中编写了一个测试,方法是右键单击原始类并单击新的 Junit 测试。在测试类中,我将类注释为 as @RunWith(Parameterized.class),参数化方法注释为 as @Parameters,方法注释为testmainas @test

在每个方法中,我为原始类创建了一个引用,并调用了这些方法并传递了所需的参数。现在有一个初始化错误,表示测试类中没有公共静态方法。有人可以告诉我这是否是进行测试的正确方法,如果不是,那么正确的方法是什么。

为了清楚起见,我还将举例说明我到目前为止所做的事情(这不是原始代码。)

@RunWith(Parameterized.class)
Public class customertest(){

@Parameters
public testmethod1(String a, String b){
customer test = new customer();
test.method1(a, b);
}

@Parameters
public testmethod2(String c, String d){
customer test = new customer();
test.method2(c, d);
}

@parameters
public testmethod3(String e){
customer test = new customer();
test.method3(e);

}

@Test
public static void testmain(String [] args){
customertest tester = new customertest();
tester.testmethod1(args[0], args[1]);
tester.testmethod2(args[2], args[3]);
tester.testmethod3(args[4]);


}




}
4

1 回答 1

2

您使用的 @Parameters 完全错误(实际上您在无效的 Java 语法中所拥有的,因为这些方法testmethodsx没有返回值)。

请参阅此站点上的示例。

应该只有一种@Parameters方法。它应该是static并返回一个Collection<Object[]>. 数组中的元素数量必须等于测试类的构造函数中的参数数量。

在示例中,您将看到FibonacciTest有一个带有 2 个参数的构造函数。该方法返回的每个数组都@Parameteres包含 2 个元素。这些元素被传递给构造函数,并且测试应该使用这些字段来进行特定于参数的测试。

于 2013-04-29T10:39:16.110 回答