有没有办法验证异常是否被捕获?我的意思是在我的方法中有一种情况,我应该捕获异常,在测试中我想验证异常是否真的被捕获。
答案 0 :(得分:6)
我认为答案是否定的 - 也许你可以通过一些激烈的反思争吵来解决这个问题,但如果是这样的话,我认为这不值得你花时间。
<登记/>
但我认为(没有看到你的方法),你可能仍然可以完全覆盖你的方法
答案 1 :(得分:1)
没有任何例子,很难提出任何建议。但是如果异常没有被捕获,它会一直运行直到达到测试并且测试失败,因为抛出异常。我知道这并不能证明它是在一个特定的区块中被捕获但只是它被捕获了。
答案 2 :(得分:0)
如果程序没有被捕获,那么该例程会对您的程序执行什么操作? 如果它导致程序崩溃, 你可以在try {}块中运行你的Act部分测试。 如果它抛出异常,你就可以捕获它并且不能通过测试。
另一种选择,如果cacught异常导致调用方法, 比如printToLog() 您可以确认该方法确实使用正确的参数调用(使用mockito)。
答案 3 :(得分:0)
您应该能够模拟要抛出异常的元素,这样它就会抛出异常,然后检查是否没有调用其他方法,如果没有发生异常则会调用这些方法。
还会在抛出异常时检查状态是否符合预期。