gpt4 book ai didi

java - 第二次测试之前 JUnit @After 方法调用

转载 作者:行者123 更新时间:2023-11-30 03:07:59 25 4
gpt4 key购买 nike

我有一个名为 TestBase 的类(class)和两种方法setUp()tearDown() 。这些方法的代码如下:

@Before
public void setUp() throws Exception {
app = ApplicationManager.getInstance();
}

@After
public void tearDown() throws Exception {
app.stop();
}

我还有两个类,它们从 TestBase 延伸而来。并具有 @Test 的方法注释:

public class SubscriptionTests extends TestBase<Subscription> {

@Test
public void testValidSubscription() {
DataGenerator.createTestData(Subscription.class);
Subscription subscription = (Subscription) getFromXml("subscription", new String[]{"email"}).get(0);
app.getModelHelper().createModel(subscription);
}
}

public class UserRegistrationTests extends TestBase<User> {

@Test
public void testRegistrationValidUser() {
DataGenerator.createTestData(User.class);
List<BaseModel> users = getFromXml("user", new String[]{ "email", "name", "password", "passwordConfirmation"});
User validUser = (User) users.get(0);
app.getModelHelper().createModel(validUser);
}}

我尝试开始测试。第一个以成功结束,但之后调用方法 tearDown()TestBase类(带有 @After 注释),我得到 SessionNotFoundException 。结果第二个测试没有开始。怎么了?

最佳答案

@Before@After 分别标记在每个测试之前和之后运行的(实例)方法。也许您希望 @BeforeClass@AfterClass 分别标记(静态)方法仅在开始和结束时运行一次。

关于java - 第二次测试之前 JUnit @After 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34278904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com