testNG注解,在java中相当于“finally”?

w6lpcovy  于 2022-12-25  发布在  Java
关注(0)|答案(2)|浏览(135)

我不知道我的问题是否清楚,但我使用testNG,我有这样的代码:

@Test
public void passengerServiceTest() {
...
}

@AfterTest
public void deleteCreatedPassenger() {
...    
}

我想在passengerServiceTest之后执行我的deleteCreatedPassenger()方法,而且,我希望在deleteCreatedPassenger失败的情况下,passengerServiceTest也失败,换句话说,我希望它们是同一个测试,所以如果其中一个失败,测试也失败。所以我尝试使用注解@AfterTest,@AfterMethod,@AfterClass,并且都将两个测试作为“分离”测试。你知道如何做到这一点吗?问候

wh6knrhe

wh6knrhe1#

你不需要注解来实现这一点,因为这正是finally代码块的目的:

@Test
public void passengerServiceTest() {            
    try {
        //test code 
    } finally {
        deleteCreatedPassenger();
    }
}

public void deleteCreatedPassenger() {
...    
}

如果删除抛出异常,则服务测试失败。
注解在某些情况下是有用的,您不应该将其用于核心语言构造之上。

watbbzwu

watbbzwu2#

第一个月
https://testng.org/doc/documentation-main.html
例如:

@AfterTest(alwaysRun = true)
public void deleteOldValuesFromDatabase() {
    ...
}

文档说,这将导致方法运行“即使以前调用的一个或多个方法失败或被跳过”

相关问题