4

在我的测试中,我正在使用与数据库的连接,我打开连接@Before 并在@After.

我的问题是如果在测试期间抛出异常会发生什么?

我将如何关闭连接?

我正在寻找与finallytry and catch 块之后等效的东西。

4

1 回答 1

6

@After会做你想做的。根据其文档

即使 Before 或 Test 方法抛出异常,所有 @After 方法也保证运行。

(这对我来说很直观,因为我认为测试方法被包装在一个try块中,该块将捕获任何异常并将其转换为测试失败。因此测试失败,然后拆解块运行。)

请注意,它没有指定如果Error抛出 an 则该方法将运行。通常虽然您只使用该@After方法来维护测试状态,但这不会出现问题,因为在这种情况下无论如何都不会运行更多测试。如果您确实在测试中使用了绝对必须清理的任何资源(例如本机挂钩),那么最好try-finally在测试方法本身的一个块中执行此操作。

于 2012-08-17T08:23:33.513 回答