Junit多重设置和单一测试

Wei*_*Shi 7 java junit

我想编写一个测试,以多种方式执行安装程序,但希望它们生成相同的输出.基本上就像

@Before
public void setUp1(){
    obj.addDataThisWay(data);
}

@Before
public void setUp2(){
    obj.addDataThatWay(data);
}

@Test
public void testResult(){
    assertEquals(obj.getResult(),1);
}
Run Code Online (Sandbox Code Playgroud)

我希望测试运行两次,一次运行setUp1()->testResult(),另一次运行setUp2()->testResult()是否可能?

Aas*_*set 7

据我所知.您必须将其转换为两个单独的测试(并根据需要将断言提取到公共,私有,非@Test方法),或者您可以使用参数化测试.


Tri*_*Man 5

public void testWithSetup1() {
     callSetup1Here();
     .....
}

public void testWithSetup2() {
     callSetup2Here();
     .....
}
Run Code Online (Sandbox Code Playgroud)

我认为没有其他方法可以满足您的要求。