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()方法的可靠性,保证在测试中正确捕获异常。

相关内容

热门资讯

无独有偶!wepoker怎么破... 无独有偶!wepoker怎么破解游戏,免费途游四川辅助器,竟然真的有辅助脚本(哔哩哔哩)1、免费途游...
分享透视!来玩app破解,佛手... 分享透视!来玩app破解,佛手在线大菠萝技巧(透视)都是是真的有辅助app(哔哩哔哩)1、玩家可以在...
近期!wepoker有没有辅助... 近期!wepoker有没有辅助,拱趴游戏攻略,总是是真的有辅助技巧(哔哩哔哩)所有人都在同一条线上,...
辅助透视!大菠萝辅助器,竞技联... 辅助透视!大菠萝辅助器,竞技联盟辅助插件(透视)总是是有辅助攻略(哔哩哔哩)1、很好的工具软件,可以...
备受关注的!wepokerpl... 备受关注的!wepokerplus脚本,微信多乐跑作必弊,本来存在有辅助技巧(哔哩哔哩)微信多乐跑作...
专业透视!cloudpoker... 专业透视!cloudpoker怎么开挂,哈糖大菠萝挂(透视)原来是有辅助教程(哔哩哔哩)1、游戏颠覆...
现就发布提示!pokemmo辅... 现就发布提示!pokemmo辅助器,微信小程序雀神麻将好运来,一直存在有辅助脚本(哔哩哔哩)在进入微...
解谜透视!agpoker辅助,... 解谜透视!agpoker辅助,sohoopoker辅助(透视)真是一直总是有辅助神器(哔哩哔哩)1)...
现有说明如下!pokemmo免... 您好,衢州都莱罗松怎么才能赢这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】...
解迷透视!德州来玩辅助器,po... 解迷透视!德州来玩辅助器,pokemmo手机版透视脚本(透视)切实真的是有辅助插件(哔哩哔哩)pok...