4
在我的测试中,我正在使用连接到数据库,我打开连接@Before
并关闭它在@After
。最后在Java Junit 4中
我的问题是如果在测试期间抛出异常会发生什么?
我该如何关闭连接?
我正在寻找相当于finally
的东西,它位于try和catch块之后。
在我的测试中,我正在使用连接到数据库,我打开连接@Before
并关闭它在@After
。最后在Java Junit 4中
我的问题是如果在测试期间抛出异常会发生什么?
我该如何关闭连接?
我正在寻找相当于finally
的东西,它位于try和catch块之后。
@After
会做你想做的。根据其documentation:
即使Before或Test方法抛出异常,所有@After方法都保证运行。
(这直觉对我来说很有意义,因为我想象中的测试方法,裹在try
块,将捕获任何异常,将其转换为一个测试失败。因此,测试失败,那么拆机块运行。 )
请注意,如果引发了Error
,它不会指定该方法将运行。通常,虽然您只使用@After
方法来维护测试状态,但这不会造成问题,因为在这种情况下无法运行更多测试。如果确实需要使用测试中必须清理的任何资源(例如本机挂钩),那么最好在测试方法本身的try-finally
块中执行此操作。