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

天津建设网站的公司哪家好平台商城网站开发

天津建设网站的公司哪家好,平台商城网站开发,网站建设 提成,东莞品牌型网站建设异常测试 为什么要测试异常流#xff1f; 就像所有代码一样#xff0c;测试覆盖率会在代码和应该生成的业务功能之间写一个合同#xff0c;从而为您提供代码的有效文档 #xff0c;以及增加的尽早且经常强调功能的功能。 我不会介绍测试的许多好处#xff0c;而是只关注异… 异常测试 为什么要测试异常流 就像所有代码一样测试覆盖率会在代码和应该生成的业务功能之间写一个合同从而为您提供代码的有效文档 以及增加的尽早且经常强调功能的功能。 我不会介绍测试的许多好处而是只关注异常测试。 有很多方法可以测试从一段代码引发的异常流。 假设您有一个受保护的方法该方法要求参数不为null。 您将如何测试该状况 引发异常时如何防止JUnit报告失败 该博客涵盖了几种不同的方法使用JUnit的的ExpectedException使用JUnit的rule功能实现的高潮。 “旧”方式 在不久的将来测试异常的过程需要大量的样板代码您可以在其中启动try / catch块如果代码未产生预期的行为则报告失败然后捕获异常以查找异常。具体类型。 这是一个例子 public class MyObjTest {Testpublic void getNameWithNullValue() {try {MyObj obj new MyObj();myObj.setName(null);fail(This should have thrown an exception);} catch (IllegalArgumentException e) {assertThat(e.getMessage().equals(Name must not be null));}} } 从这个旧示例中可以看到测试用例中的许多行只是为了支持缺少专门测试异常处理的功能。 使用try / catch方法的一个好处是可以测试特定消息和预期异常上的任何自定义字段 。 我们将通过JUnit的ExpectedException和Rule注释进一步探讨这一点。 JUnit添加了预期的异常 JUnit通过添加Test注释字段“ expected”来响应用户对异常处理的需求。 目的是如果引发的异常类型与注释中存在的异常类匹配则整个测试用例将通过。 public class MyObjTest {Test(expected IllegalArgumentException.class)public void getNameWithNullValue() {MyObj obj new MyObj();myObj.setName(null);} } 从较新的示例中可以看到样板代码要少得多并且测试非常简洁但是存在一些缺陷 。 主要缺陷是测试条件太宽泛。 假设签名中有两个变量并且两个变量都不能为null那么如何知道为IllegalArgumentException抛出了哪个变量呢 当您扩展了Throwable并需要检查字段的存在时会发生什么 在继续阅读时请记住这些随后将有解决方案。 JUnit Rule和ExpectedException 如果查看前面的示例可能会看到期望抛出IllegalArgumentException但是如果您有一个自定义异常该怎么办 如果要确保该消息包含特定的错误代码或消息怎么办 这是JUnit真正出色的地方它提供了专门为异常测试量身定制的JUnit Rule对象。 如果您不熟悉JUnit Rule请在此处阅读文档 。 ExpectedException JUnit提供了一个JUnit类ExpectedException该类旨在用作Rule。 ExpectedException允许您的测试声明预期会出现异常并为您提供一些基本的内置功能来清楚地表达预期的行为。 与Testexpected批注功能不同ExpectedException类允许您通过Hamcrest匹配器库测试特定的错误消息和自定义字段。 JUnit的ExpectedException的示例 import org.junit.rules.ExpectedException;public class MyObjTest {Rulepublic ExpectedException thrown ExpectedException.none();Testpublic void getNameWithNullValue() {thrown.expect(IllegalArgumentException.class);thrown.expectMessage(Name must not be null);MyObj obj new MyObj();obj.setName(null);} } 如前所述该框架允许您测试特定消息以确保在测试专门寻找的情况下抛出异常。 当怀疑多个参数的可空性时这将非常有用。 自定义字段 可以说ExpectedException框架最有用的功能是能够使用Hamcrest匹配器测试您的自定义/扩展异常。 例如您有一个自定义/扩展的异常将被抛出到一个方法中并且该异常内部有一个“ errorCode”。 如何在不从上面列出的try / catch块中引入样板代码的情况下测试该功能 定制匹配器怎么样 可以从以下网址获得此代码 https : //github.com/mike-ensor/custom-exception-testing 解决方案首先是测试用例 import org.junit.rules.ExpectedException;public class MyObjTest {Rulepublic ExpectedException thrown ExpectedException.none();Testpublic void someMethodThatThrowsCustomException() {thrown.expect(CustomException.class);thrown.expect(CustomMatcher.hasCode(110501));MyObj obj new MyObj();obj.methodThatThrowsCustomException();} } 解决方案自定义匹配器 import com.thepixlounge.exceptions.CustomException; import org.hamcrest.Description; import org.hamcrest.TypeSafeMatcher;public class CustomMatcher extends TypeSafeMatcherCustomException {public static BusinessMatcher hasCode(String item) {return new BusinessMatcher(item);}private String foundErrorCode;private final String expectedErrorCode;private CustomMatcher(String expectedErrorCode) {this.expectedErrorCode expectedErrorCode;}Overrideprotected boolean matchesSafely(final CustomException exception) {foundErrorCode exception.getErrorCode();return foundErrorCode.equalsIgnoreCase(expectedErrorCode);}Overridepublic void describeTo(Description description) {description.appendValue(foundErrorCode).appendText( was not found instead of ).appendValue(expectedErrorCode);} } 注意请访问https://github.com/mike-ensor/custom-exception-testing以获取可用的Hamcrest MatcherJUnit Rule和ExpectedException的副本。 在那里您可以快速概览一下测试代码引发的异常的不同方法以及从自定义异常类中测试特定消息和字段的能力。 请具体说明您的测试用例并尝试针对您为测试设置的确切用例请记住测试可以避免引入副作用漏洞 祝您编程愉快别忘了分享 参考在Mike的站点博客上从JCG合作伙伴 Mike 那里 使用JUnit的ExpectedException和Rule测试自定义异常 。 翻译自: https://www.javacodegeeks.com/2012/10/testing-custom-exceptions-with-junits.html
http://www.zqtcl.cn/news/737499/

相关文章:

  • 汕头网站搭建wordpress文章列表摘要
  • 网站开发体会800字网站开发新功能
  • 网站域名查询ip杭州pc网站开发公司有哪些
  • 青岛公司网站设计网站后台编辑器内容不显示
  • vc6.0做网站wordpress调用会员等级
  • 哪个网站有做商标网站的类型是什么意思
  • 网站 主机网站内容段落之间有空格对seo有影响吗
  • 网站的宣传推广学网站开发哪个好
  • 免费背景图片素材网站北京企业建站程序
  • 营销网站建设方案wordpress门户
  • 世界网站排名查询效果好企业营销型网站建设公司
  • 网站用户体验解决方案个人网页设计作品赏析
  • 常州网站建设方案外包网站开发用到的技术
  • 防伪网站模板如何找百度做网站
  • 网站建设与维护成绩查询云南app开发系统
  • 自己做网站的难度建设专门网站 强化信息宣传
  • 公职单位建设网站的目的如何查看小程序的开发公司
  • 网页模板网站推荐青岛 php 网站建设
  • joomla 网站建设3d网站建设
  • 网站开发与维护专业前景网站被禁止访问怎么打开
  • 山东 网站建设青海公路建设市场信用信息服务网站
  • 济南正规做网站公司wordpress一键还原
  • 免费的购物网站源码百度网站优化
  • 企业需要做网站吗深圳装修公司前十强
  • 合肥做网站推广哪家好软文写作的十大技巧
  • 哪里做网站的wordpress歌词插件
  • 网站改版做301重定向百度站长平台查询
  • 织梦网站后台网址妙影免费模板下载
  • 甘肃网站建设开发怎么利用花生壳做自己的网站
  • 怎么查询网站开通时间建个短视频网站