当前位置: 首页 > news >正文

西山网站建设国外扁平化设计网站

西山网站建设,国外扁平化设计网站,网站 测速度,crm系统视频编写好的单元测试的规则之一是#xff0c;它应该出于某种原因而失败#xff0c;因此#xff0c;单元测试应该测试一种逻辑概念。 有时很难在每个测试中拥有一个断言。 为了遵循规则#xff0c;我们可能在一个测试中每个对象具有多个断言。 但是#xff0c;在单个测试中存… 编写好的单元测试的规则之一是它应该出于某种原因而失败因此单元测试应该测试一种逻辑概念。 有时很难在每个测试中拥有一个断言。 为了遵循规则我们可能在一个测试中每个对象具有多个断言。 但是在单个测试中存在多个断言的问题在于如果第一个断言由于任何原因而失败我们实际上将不知道其他断言因为它们将不会被执行。 并且您知道了演练您检查断言失败原因进行修复然后重新运行测试。 也许您很幸运测试会通过。 但是也许它将因另一个断言而失败。 对于真正快速的单元测试这不是什么大问题但是例如在进行硒测试时分析和故障检测可能会变得很麻烦并且肯定会很费时。 幸运的是借助AssertJ的SoftAssertions 我们可以重新考虑在测试中创建断言的SoftAssertions 。 一个宣称可以统治所有人的主张 在假设的Dice游戏中有一个Score对象其中保存得分值骰子组合和提醒。 在单元测试中我们可能想验证不同骰子组合的分数计算方式。 在下面的示例中验证了一个概念得分对象 Test public void verifiesScore() {Score score Score.scoreBuilder().withValue(11).withCombination(dice(1, 1, 3, 4)).withReminder(dice(6)).build();assertThat(score.getValue()).as(Has score).isEqualTo(8);assertThat(score.getCombination()).as(Has combination).isEqualTo(dice(1, 1, 3, 3));assertThat(score.getReminder()).as(Has reminder).isEqualTo(dice(5)); } 如您所见所有三个断言都失败了但是由于第一个失败后测试的执行停止因此我们只会看到第一个失败的结果 org.junit.ComparisonFailure: [Has score] Expected :8 Actual :11引入 为了解决这个问题我们可以使用SoftAssertions 它将在调用assertAll()方法时立即收集所有断言的结果 Test public void verifiesScoreSoftly() {Score score Score.scoreBuilder().withValue(11).withCombination(dice(1, 1, 3, 4)).withReminder(dice(6)).build();SoftAssertions softAssertions new SoftAssertions();softAssertions.assertThat(score.getValue()).as(Has score).isEqualTo(8);softAssertions.assertThat(score.getCombination()).as(Has combination).isEqualTo(dice(1, 1, 3, 3));softAssertions.assertThat(score.getReminder()).as(Has reminder).isEqualTo(dice(5));softAssertions.assertAll(); } 现在我们可以验证测试中的所有断言失败 org.assertj.core.api.SoftAssertionError: The following 3 assertions failed: 1) [Has score] expected:[8] but was:[11] 2) [Has combination] expected:...alue3}, Dice{value[3]}] but was:...alue3}, Dice{value[4]}] 3) [Has reminder] expected:[Dice{value[5]}] but was:[Dice{value[6]}]JUnitSoftAssertions 代替手动创建SoftAssertions并调用其assertAll()我们可以使用JUnit Rule Rule public JUnitSoftAssertions softAssertions new JUnitSoftAssertions();Test public void verifiesScoreSoftlyUsingRule() {Score score Score.scoreBuilder().withValue(11).withCombination(dice(1, 1, 3, 4)).withReminder(dice(6)).build();softAssertions.assertThat(score.getValue()).as(Has score).isEqualTo(8);softAssertions.assertThat(score.getCombination()).as(Has combination).isEqualTo(dice(1, 1, 3, 3));softAssertions.assertThat(score.getReminder()).as(Has reminder).isEqualTo(dice(5)); } 我们不仅不需要记住调用assertAll()而且还可以在IntelliJ的比较编辑器中看到潜在的失败 自定义 为了提高分数验证的可读性和可重用性我们可以创建一个自定义断言以便可以按以下方式使用它 Test public void verifiesScoreSoftlyWithCustomAssertion() {Score score Score.scoreBuilder().withValue(11).withCombination(dice(1, 1, 3, 4)).withReminder(dice(6)).build();SoftScoreAssertion.assertThat(score).hasValue(8).hasCombination(dice(1, 1, 3, 3)).hasReminder(dice(5)).assertAll(); } SoftScoreAssertion使用SoftAssertions 因此我们仍然会立即看到所有断言错误。 和代码 class SoftScoreAssertion extends AbstractAssertSoftScoreAssertion, Score {private SoftAssertions softAssertions new SoftAssertions();protected SoftScoreAssertion(Score actual) {super(actual, SoftScoreAssertion.class);}public static SoftScoreAssertion assertThat(Score actual) {return new SoftScoreAssertion(actual);}public SoftScoreAssertion hasValue(int scoreValue) {isNotNull();softAssertions.assertThat(actual.getValue()).as(Has score).isEqualTo(scoreValue);return this;}public SoftScoreAssertion hasReminder(ListDice expected) {isNotNull();softAssertions.assertThat(actual.getReminder()).as(Has reminder).isEqualTo(expected);return this;}public SoftScoreAssertion hasCombination(ListDice expected) {isNotNull();softAssertions.assertThat(actual.getCombination()).as(Has combination).isEqualTo(expected);return this;}Overridepublic SoftScoreAssertion isNotNull() {softAssertions.assertThat(actual).isNotNull();return this;}public void assertAll() {this.softAssertions.assertAll();} }资源资源 http://joel-costigliola.github.io/assertj/assertj-core-features-highlight.html#soft-assertions https://github.com/joel-costigliola/assertj-core/wiki/Creating-specific-assertions 源代码 可以在GitHub上的我的unit-testing-demo项目中找到本文的源代码 https : //github.com/kolorobot/unit-testing-demo 。 翻译自: https://www.javacodegeeks.com/2015/09/assertjs-softassertions-do-we-need-them.html
http://www.zqtcl.cn/news/158604/

相关文章:

  • 中文网页设计模板免费下载超级优化小说
  • 做网站的流程前端做什么网站建设与管理专业学什么
  • 用wordpress做购物网站西安建设工程网站
  • 响应式网站免费模板下载电商怎么做如何从零开始视频
  • 江西网站开发学校联系我们网站制作
  • 做网站首页图片素材营销网站制作要素
  • 云阳网站建设百度对 wordpress 排名
  • 做电商网站需要多少时间网站建设答辩ppt
  • 营销型网站的案例江苏seo网站排名优化
  • 企业网站 备案 网站名称凡科做视频网站
  • 湘潭建设公司网站杭州网站优化
  • 工信部备案网站网站空间服务商
  • 深圳市企业网站seo营销工具桂林百姓网
  • 网站建设所需材料wordpress nginx配置文件
  • 给企业做网站运营广州制作网站公司
  • 一个网站可以有几个关键词网页游戏制作过程
  • 网站可视化后台桥西区网站建设
  • 个人怎么建设网站北京朝阳区最好的小区
  • 企业应该如何建设网站江苏润祥建设集团网站
  • 沈阳网站建设价格wordpress h1标签
  • 找别人做网站一般注意什么三亚专业做网站
  • 企业营销网站的建设罗湖做网站
  • 百度蜘蛛抓取新网站WordPress20w文章
  • 国际贸易网站有哪些可植入代码网站开发
  • 信息服务平台有哪些网站东莞网站关键词
  • 青岛网站定制手机软件开发和网站开发
  • 网站数据库地址是什么看企业网站怎么做到百度秒收
  • 南昌网站建设资讯wordpress dynamo
  • 网站建设招标样本南宁培训网站建设
  • 找回网站备案密码wordpress 2015主题