在我的测试中,我正在使用与数据库的连接,我打开连接@Before
并在@After
.
我的问题是如果在测试期间抛出异常会发生什么?
我将如何关闭连接?
我正在寻找与finally
try and catch 块之后等效的东西。
@After
会做你想做的。根据其文档:
即使 Before 或 Test 方法抛出异常,所有 @After 方法也保证运行。
(这对我来说很直观,因为我认为测试方法被包装在一个try
块中,该块将捕获任何异常并将其转换为测试失败。因此测试失败,然后拆解块运行。)
请注意,它没有指定如果Error
抛出 an 则该方法将运行。通常虽然您只使用该@After
方法来维护测试状态,但这不会出现问题,因为在这种情况下无论如何都不会运行更多测试。如果您确实在测试中使用了绝对必须清理的任何资源(例如本机挂钩),那么最好try-finally
在测试方法本身的一个块中执行此操作。