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

有做lol直播网站有哪些人陈木胜老婆吴君如

有做lol直播网站有哪些人,陈木胜老婆吴君如,深圳网络营销招聘,免费logo设计生成器图片有时#xff0c;当我们收到对jOOQ或其他库的拉取请求时#xff0c;人们会将单元测试中的代码更改为更“惯用的JUnit”。 特别是#xff0c;这意味着他们倾向于更改此代码#xff08;公认的不是那么漂亮的代码#xff09;#xff1a; Test public void testValueOfIntInv… 有时当我们收到对jOOQ或其他库的拉取请求时人们会将单元测试中的代码更改为更“惯用的JUnit”。 特别是这意味着他们倾向于更改此代码公认的不是那么漂亮的代码 Test public void testValueOfIntInvalid() {try {ubyte((UByte.MIN_VALUE) - 1);fail();}catch (NumberFormatException e) {}try {ubyte((UByte.MAX_VALUE) 1);fail();}catch (NumberFormatException e) {} } …成为“更好”和“更清洁”的版本 Test(expected NumberFormatException.class) public void testValueOfShortInvalidCase1() {ubyte((short) ((UByte.MIN_VALUE) - 1)); }Test(expected NumberFormatException.class) public void testValueOfShortInvalidCase2() {ubyte((short) ((UByte.MAX_VALUE) 1)); }我们获得了什么 没有 当然我们已经必须使用Test批注因此我们不妨使用其expected的属性对吗 我声称这是完全错误的。 有两个原因。 当我说“两个”时我的意思是“四个” 1.在代码行数方面我们并没有真正获得任何好处 比较语义上有趣的位 // This: try {ubyte((UByte.MIN_VALUE) - 1);fail(Reason for failing); } catch (NumberFormatException e) {}// Vs this: Test(expected NumberFormatException.class) public void reasonForFailing() {ubyte((short) ((UByte.MAX_VALUE) 1)); } 给定或采用空格格式基本语义信息量完全相同 该方法正在测试中的ubyte() 。 这不会改变 我们要传递给失败报告的消息以字符串或方法名称表示 异常类型和预期的事实 因此即使从样式角度来看这也不是真正有意义的更改。 2.我们还是必须将其重构 在注释驱动的方法中我所能做的就是测试异常类型 。 例如在以后要添加更多测试的情况下我无法对异常消息做出任何假设。 考虑一下 // This: try {ubyte((UByte.MIN_VALUE) - 1);fail(Reason for failing); } catch (NumberFormatException e) {assertEquals(some message, e.getMessage());assertNull(e.getCause());... } 3.单个方法调用不是单位 单元测试称为testValueOfIntInvalid() 。 因此 通常在输入无效的情况下要测试的语义“单位”是UByte类型的valueOf()行为的语义“单位”。 不适用于单个值例如UByte.MIN_VALUE - 1 。 不应将其拆分为更小的单元仅因为这是我们将Test注释塞入其功能范围的唯一方法。 TDD员工请听此。 我从不希望将我的API设计或我的逻辑塞进“落后”测试框架没有个人的JUnit所施加的一些怪异的限制中。 永不 “我的” API比“您的”测试重要100倍。 这包括我不想 公开一切 使一切都没有定论 使一切都能注射 使所有内容均为非静态 使用注释。 我讨厌注解。 不。 你错了。 Java已经不是一种太复杂的语言但是让我至少可以以我想要的任何方式使用它提供的一些功能。 不要因为测试而在我的代码上强加您的设计或语义上的毁损。 好。 我反应过度了。 我总是在存在批注的情况下 。 因为… 4.对于控制流结构而言注释始终是错误的选择 一次又一次我为Java生态系统中的注释滥用而感到惊讶。 注释对三件事有好处 可处理的文档例如Deprecated 方法成员类型等的自定义“修饰符”例如Override 面向方面的编程例如Transactional 并且要注意 Transactional是使其成为主流的少数几个真正有用的方面之一日志挂钩是另一个方面或者如果绝对必须的话依赖注入。 在大多数情况下AOP是解决问题的利基技术您通常在普通程序中不希望这样做。 用注解对控制流结构进行建模绝对不是一个好主意更不用说测试行为了 是。 Java已经采用了很长的缓慢的方法来包含更复杂的编程习惯用法。 但是如果您对单元测试中偶尔的try { .. } catch { .. }语句的冗长性感到不满那么您可以找到解决方案。 是Java 8。 如何使用Java 8更好地做 JUnit lambda正在开发中 http : //junit.org/junit-lambda.html 他们向新的Assertions类添加了新的功能API https : //github.com/junit-team/junit-lambda/blob/master/junit5-api/src/main/java/org/junit/gen5/api /Assertions.java 一切都基于Executable功能接口 FunctionalInterface public interface Executable {void execute() throws Exception; } 该可执行文件现在可以用于实现断言引发或不引发异常的代码。 请参见Assertions的以下方法 public static void assertThrows(Class? extends Throwable expected, Executable executable) {expectThrows(expected, executable); }public static T extends Throwable T expectThrows(ClassT expectedType, Executable executable) {try {executable.execute();}catch (Throwable actualException) {if (expectedType.isInstance(actualException)) {return (T) actualException;}else {String message Assertions.format(expectedType.getName(), actualException.getClass().getName(),unexpected exception type thrown;);throw new AssertionFailedError(message, actualException);}}throw new AssertionFailedError(String.format(Expected %s to be thrown, but nothing was thrown., expectedType.getName())); } 而已 现在那些反对try { .. } catch { .. }块的冗长的人可以重写此代码 try {ubyte((UByte.MIN_VALUE) - 1);fail(Reason for failing); } catch (NumberFormatException e) {} …变成这样 expectThrows(NumberFormatException.class, () - ubyte((UByte.MIN_VALUE) - 1)); 如果我想对异常进行进一步检查可以这样做 Exception e expectThrows(NumberFormatException.class, () - ubyte((UByte.MIN_VALUE) - 1)); assertEquals(abc, e.getMessage()); ... 出色的工作JUnit lambda团队 函数式编程每次都会击败注释 注释被滥用了很多逻辑 主要是在JavaEE和Spring环境中它们都迫切希望将XML配置移回Java代码。 这是错误的方法这里提供的示例清楚地表明与使用批注相比几乎总是有一种更好的方法可以使用面向对象或功能编程来显式地写出控制流逻辑。 在Test(expected ...)的情况下我得出结论 安息 expected 无论如何它不再是JUnit 5 Test批注的一部分 翻译自: https://www.javacodegeeks.com/2016/01/use-junits-expected-exceptions-sparingly.html
http://www.pierceye.com/news/74010/

相关文章:

  • 微网站开发商医疗企业网站模板
  • 网站建设与维护方式是什么专业培训大全
  • 做网站的基本功wordpress付费汉化主题
  • 百度网站首页入口餐饮团购网站建设
  • 新闻发布网站建设实训页面模板下载
  • 网站文件夹命名seo大连网站制作咨询
  • 怎么创建免费的个人网站广州黄埔建网站
  • 哪个网站有老外教做蛋糕全国网站建设公司
  • 福清市住房和城乡建设局网站陕西免费网站建设
  • 切实加强门户网站建设长春平原网站建设
  • 服务器做视频网站天津百度推广公司
  • 淮南市潘集区信息建设网站长春专业做网站公司哪家好
  • 无锡网络公司无锡网站制作学网页制作有什么用
  • 微信网站特征wordpress 导航下拉
  • 男人女人做那个网站做网站系统
  • 网站图片上传代码wordpress多站点配置教程
  • 有没学做早餐的网站三好街 网站建设
  • 湖南seo网站开发济南建站公司哪有
  • 生鲜电商网站建设网站备案如何转移
  • 网站建设 合作协议电商网站开发的背景
  • 公司网络搭建江门关键词优化价格
  • 行业网站解决方案在建设一个公司网站多少钱
  • 网站产品标签文章标签怎么做网站项目设计
  • 专业做财经直播网站有哪些中卫网站推广营销
  • 站长统计幸福宝网站统计中国教育培训网
  • 360百度网站怎么做html5网站开发教学
  • 网站建设公司开发东乡哪里有做网站
  • 二级网站开发 一级关系企业网站诊断与优化方案
  • 怎么做提卡密网站安徽建站贵吗
  • 一般做外单的有哪些网站中企动力科技股份有限公司是国企吗