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

assertAll与JUnit5中的多个断言

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

assertAll与JUnit5中的多个断言

有趣的

assertAll
是,无论有多少失败,它总是检查传递给它的所有断言。如果一切顺利,那么一切都很好-
如果至少有一个失败,您将得到所有错误的详细结果(正确的解决方法)。

最好用于断言概念上属于一起的一组属性。您的第一个直觉将是“我想断言这是一个”。

您的特定示例不是最佳用例,

assertAll
因为
isPrime
使用质数和非质数进行检查是彼此独立的-如此之多,因此我建议为此编写两种测试方法。

但是,假设您有一个简单的类,例如带有字段

city
,的地址
street
number
并且想断言那些正是您所期望的:

Address address = unitUnderTest.methodUnderTest();assertEquals("Redwood Shores", address.getCity());assertEquals("Oracle Parkway", address.getStreet());assertEquals("500", address.getNumber());

现在,第一个断言失败后,您将永远看不到第二个断言的结果,这可能会很烦人。有很多解决方法,JUnit Jupiter

assertAll
就是其中之一:

Address address = unitUnderTest.methodUnderTest();assertAll("Should return address of Oracle's headquarter",    () -> assertEquals("Redwood Shores", address.getCity()),    () -> assertEquals("Oracle Parkway", address.getStreet()),    () -> assertEquals("500", address.getNumber()));

如果被测方法返回错误的地址,则这是您得到的错误:

org.opentest4j.MultipleFailuresError:    Should return address of Oracle's headquarter (3 failures)    expected: <Redwood Shores> but was: <Walldorf>    expected: <Oracle Parkway> but was: <Dietmar-Hopp-Allee>    expected: <500> but was: <16>


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

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

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