栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JUnit 4预期异常类型

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JUnit 4预期异常类型

实际上,

@Test(expected=Xyz.class)
在JUnit
4.7中有一个替代方法是使用
Rule
ExpectedException

在测试用例中,您声明

ExpectedException
带有
@Rule
,并为其指定默认值
ExpectedException.none()
。然后,在预期异常的测试中,将值替换为实际预期值。这样做的好处是,无需使用难看的try
/ catch方法,您就可以进一步指定异常中的消息是

@Rule public ExpectedException thrown= ExpectedException.none();@Testpublic void myTest() {    thrown.expect( Exception.class );    thrown.expectMessage("Init Gold must be >= 0");    rodgers = new Pirate("Dread Pirate Rodgers" , -100);}

使用此方法,您可能能够在通用异常中测试消息是否是特定的。

附加使用的
另一个优点

ExpectedException
是,您可以在测试用例的上下文中更精确地确定异常的范围。如果仅
@Test(expected=Xyz.class)
在测试中使用批注,则可以在测试代码中的任何位置引发Xyz异常-
包括测试方法中的任何测试设置或预声明。这可能导致误报。

使用ExpectedException,您可以推迟指定,

thrown.expect(Xyz.class)
直到在任何设置和预声明之后才实际调用被测方法之前。因此,您可以更准确地确定实际方法调用而不是测试夹具本身抛出的异常的范围。

JUnit 5注:

的JUnit
5的JUnit木星除去

@Test(expected=...)
@Rule
ExpectedException
完全。它们被new替换
assertThrows()
,这需要使用Java
8和lambda语法。
ExpectedException
仍可通过JUnit Vintage在JUnit 5中使用。此外,JUnit
Jupiter也将
ExpectedException
通过使用junit-jupiter-
migrationsupport模块继续支持JUnit
4
,但前提是您添加了附加的类级注释
@EnableRuleMigrationSupport



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号