【发布时间】:2013-07-07 04:32:04
【问题描述】:
有什么方法可以验证是否捕获了异常?我的意思是,在我的方法中,有一种情况我应该捕获异常,而在测试中我想验证是否真的捕获了异常。
【问题讨论】:
-
我给出了答案,但如果您发布您正在测试的方法,我可以为您提供更准确的答案。
标签: java junit mockito powermock
有什么方法可以验证是否捕获了异常?我的意思是,在我的方法中,有一种情况我应该捕获异常,而在测试中我想验证是否真的捕获了异常。
【问题讨论】:
标签: java junit mockito powermock
我认为答案是否定的——也许你可以通过一些激烈的反思争吵来解决这个问题,但如果是这样,我认为这不值得你花时间。
但我认为(没有看到您的方法),您可能仍然可以全面了解您的方法:
【讨论】:
没有任何例子很难给出任何建议。但是如果异常没有被捕获,它会一直上升直到它到达测试并且测试会失败,因为抛出了一个异常。我知道这并不能验证它是否被捕获在特定的块中,而只是它被完全捕获。
【讨论】:
如果没有被捕获,该异常在您的程序中会做什么? 如果它导致程序崩溃, 您可以在 try {} 块中运行测试的 Act 部分。 如果它引发异常,您可以捕获它并通过测试。
另一种选择,如果 cacught 异常导致方法被调用, 说 printToLog() 您可以验证该方法确实是使用正确的参数调用的(使用 mockito)。
【讨论】:
您应该能够模拟要引发异常的元素,以便它确实引发异常,然后检查是否没有调用在未发生异常时将调用的其他方法。
当抛出异常时,还要检查状态是否符合预期。
【讨论】: