我的测试用例中有两种方法。我想为每个测试方法使用两种不同的@BeforeTest
或@BeforeMethod
方法。
我在单元测试类中编写了两个@BeforeMethod
方法,但是每个单元测试方法都执行了两个方法。
那么我们如何声明单独执行特定测试方法的@BeforeMethod
方法呢?
我的单元测试类看起来像:
public class MyUnitTest{
String userName = null;
String password = null;
// Method 1
@Parameters({"userName"})
@BeforeMethod
public void beforeMethod1(String userName){
userName = userName;
}
@Parameters({"userName"})
@Test
public void unitTest1(String userNameTest){
System.out.println("userName ="+userName);
}
// Method 2
@Parameters({"userName","password"})
@BeforeMethod
public void beforeMethod2(String userName,String password){
this.userName = userName;
this.password = password;
}
@Parameters({"userName","password"})
@Test
public void unitTest2(String userNameTest,String passwordTest){
System.out.println("userName ="+this.userName+" \t Password ="+this.password);
}
}
有没有办法:
beforeMethod1
方法仅针对unitTest1()
方法执行?beforeMethod2
方法仅针对unitTest2()
方法执行?答案 0 :(得分:3)
您有几个选择:
您可以使用Method参数声明@BeforeMethod,检查该方法的名称,如果它是unitTest1,则调用beforeMethod1(),如果它是unitTest2,则调用beforeMethod2()。这可能不是我的第一选择,因为如果你改变方法的名称它有点脆弱。
将这些方法及其before方法放在不同的类中,可能共享一个共同的超类。