assertThrows()表现良好,但它应该失败
创始人
2024-09-20 16:30:16
0

assertThrows()是JUnit 5中的一个断言方法,用于测试抛出异常的情况。例如,可以使用assertThrows()来测试方法是否会抛出NullPointerException或IllegalArgumentException等异常。

在某些情况下,assertThrows()可能会无法捕获异常,导致测试失败。这通常是由于测试方法本身已经捕获了异常,或者异常类型不正确。为了测试这种情况,我们可以手动添加一个失败条件来检测是否没有抛出预期的异常。

以下是示例代码,演示如何添加失败条件来测试assertThrows()是否起作用:

@Test void testDivideByZero_shouldThrowException() { Calculator calculator = new Calculator(); assertThrows(ArithmeticException.class, () -> calculator.divide(1, 0), "Expected ArithmeticException to be thrown"); assertThrowsFail(); }

private void assertThrowsFail() { try { assertThrows(Exception.class, () -> {}); fail("assertThrows() failed to throw Exception"); } catch (AssertionError e) { // expected } }

上述代码首先使用assertThrows()测试divide()方法是否会抛出ArithmeticException。然后,它使用assertThrowsFail()方法来测试assertThrows()本身是否会抛出Exception。由于没有任何代码在lambda表达式中执行,这意味着assertThrows()应该会抛出一个异常。如果assertThrows()不抛出异常,fail()方法就会抛出一个AssertionError以产生失败条件。

通过这种方法,我们可以确保assertThrows()方法的可靠性,保证在测试中正确捕获异常。

相关内容

热门资讯

透视总结!wpk官网下载链接,... 透视总结!wpk官网下载链接,wpk俱乐部是做什么的(透视)确实存在有脚本软件(哔哩哔哩)1、点击下...
透视法门!wpk透视辅助靠谱吗... 透视法门!wpk透视辅助靠谱吗,竞技联盟辅助(透视)真是有挂(哔哩哔哩)1、完成wpk透视辅助靠谱吗...
透视诀窍!德普之星透视辅助软件... 透视诀窍!德普之星透视辅助软件激活码,we-poker辅助器(透视)果然存在有挂(哔哩哔哩)一、德普...
透视项目!如何下载德普之星辅助... 透视项目!如何下载德普之星辅助软件,wepoker有透视功能吗(透视)真是有挂(哔哩哔哩)1、下载好...
透视方式!wepoker的辅助... 透视方式!wepoker的辅助器,hhpoker德州牛仔视频(透视)一贯存在有挂(哔哩哔哩)亲,关键...
透视大纲!hh poker软件... 透视大纲!hh poker软件,hhpoker软件安装包(透视)确实真的有透视神器(哔哩哔哩)1、全...
透视阶段!wepoker透视脚... 透视阶段!wepoker透视脚本视频,wepoker辅助器有哪些功能(透视)真是是有挂(哔哩哔哩)1...
透视要领!德州局脚本,wepo... 透视要领!德州局脚本,wepoker免费透视(透视)原来有挂(哔哩哔哩)1、很好的工具软件,可以解锁...
透视绝活!wepoker怎么挂... 透视绝活!wepoker怎么挂飞机,we poker游戏下(透视)确实存在有挂(哔哩哔哩)该软件可以...
透视指引!hhpoker真的假... 透视指引!hhpoker真的假的,wepoker私局辅助(透视)本来是有挂(哔哩哔哩)wepoker...