是否可能有一个可以跨多个测试类使用的公共@Before和@After固定装置?
我已经根据模块(库存、销售、购买等)将测试(分为类)进行了隔离。对于所有这些测试,用户登录是一个先决条件,目前我正在@Before中为每个类设置它。问题是当我需要更改用户id或密码时,我需要在每个类中进行更改。是否有一种方法可以编写可以在所有测试类中使用的@Before / @After?在这种情况下,测试套件有用吗?
发布于 2014-06-25 08:37:26
@Before和@After适用于继承:
public abstract class AbstractTestCase {
@Before
public void setUp() {
// do common stuff
}
}如果您想在每个测试用例中执行特定的操作,可以重写它:
public class ConcreteTestCase extends AbstractTestCase {
@Before
@Override
public void setUp() {
super.setUp();
// do specific stuff
}
}发布于 2014-06-25 08:38:31
您可以为您的测试套件创建一个@ClassRule。对每个测试都调用它。关于如何在之前/之后应用ExternalResource,请参见API和示例。
发布于 2014-06-25 08:37:51
您可以在抽象父类中使用@Before注释,如下所示:
public class TestMe extends TestParent {
@Test
public void test() {
System.out.println("Hi, here is a test. The username is: " + getUsername());
}
}与家长班:
public abstract class TestParent {
private String username;
@Before
public void setUp() {
username = "fred";
}
public String getUsername() {
return username;
}
}https://stackoverflow.com/questions/24403801
复制相似问题