Truth:一个流畅的断言框架
来源:互联网 发布:网易uu打不开修复网络 编辑:程序博客网 时间:2024/04/28 02:54
作者:Dori Reuveni 、Kurt Alfred Kluever
原文链接:http://googletesting.blogspot.tw/2014/12/testing-on-toilet-truth-fluent.html
作为工程师,我们花费大部分的时间来阅读现有的代码,而不是编写新的代码。因此,我们必须确保我们写的代码是清晰的、可读的。这同样适用于我们的测试;我们需要一种方法来清楚的表达我们的测试断言。
Truth是一个开源的、流畅的Java测试框架,使你的测试断言和失败消息更有可读性。通过自动编译,流畅的API使读(和写)测试断言在你的开发环境中更加自然、散文化和易发现。例如,比较JUnit和Truth是如何读以下断言的:
assertEquals("March", monthMap.get(3)); // JUnit
assertThat(monthMap).containsEntry(3, "March"); // Truth
这两个语句都断言一样的对象,但是由Truth编写的断言很容易从左到右读取,而由Junit编写的例子需要“精神回溯”。
相比于JUnit,Truth的另一个优点是增加有用的默认失败消息。例如:
ImmutableSet<String> colors = ImmutableSet.of("red", "green", "blue", "yellow");
assertTrue(colors.contains("orange")); // JUnit
assertThat(colors).contains("orange"); // Truth
在这个例子里,两个断言都将失败;但是JUnit将不会提供有用的错误信息。然而,Truth可提供一个简明的错误信息:
AssertionError:<[red, green, blue, yellow]> should have contained <orange>
Truth已经可以支持对多数常见JDK类型的专业断言(对象,基本类型,数组,字符串,类,可比较类型,可迭代类型,集合,列表,集合,图等),以及一些瓜娃类型(可选值)。另外,对于其他受欢迎类型的支持也在计划中(异常,迭代器,多重映射,无符号整型,无符号长整型等)。
Truth也是用户扩展型的:你可以很容易的写一个Truth主题,以对你自定义的类型进行流畅的断言。通过创建你自定义的主题,你的断言API和你的失败消息都可以是特定领域的。
Truth的目标不是取代JUnit断言,而是提高对复杂断言和失败消息的可读性。JUnit断言和Truth断言可以(且经常)并存于测试中。- Truth:一个流畅的断言框架
- Truth:Google的断言和命题框架
- 创建一个流畅循环的UIScrollView
- XCTest框架定义的常用断言宏
- 断言(Assertion)需要注意的一个地方
- golang,使用类型断言的一个例子
- 如何开发一个流畅的云计算架构?
- 一个流畅的拖动排序DragSortGridView,自动滚屏
- OCUNIT框架断言宏
- python的unittest单元测试框架断言整理汇总
- 昨天遇到的一个断言失败,程序退出的问题
- 一个可以验证两个内存块绝不重叠的断言
- 一个方便Symbian上调试的断言工具
- 怎样从0开始搭建一个测试框架_8——断言
- 流畅的Python
- 《流畅的Python》
- appium-unittest框架中的断言
- Facebook开源:让iOS应用界面极致流畅的ASDK框架
- MySQL show命令
- kettle调试远程执行的作业
- Mycat范围求模分片
- 理解OAuth 2.0
- Facebook App 优化工具 ReDex
- Truth:一个流畅的断言框架
- (前端预热)初识grunt NODE→grunt
- 来到的第一天。
- 设计模式之观察者模式
- Ubuntu上安装搜狗中文输入法
- 用js判断操作系统和浏览器类型
- Vue.js笔记-数据绑定
- 二叉树大全
- An overview of gradient descent optimization algorithms