1.正式介绍

作为QA工程师,我们把大部分时间花在阅读和测试代码上,而不是在单元测试中编写新代码。所以,在要求RD学生写出干净的业务代码的同时,也要求我们写出可读性强、维护成本低的测试代码和断言。

今天,我想介绍一个简单易用的单元测试框架——Truth。Truth是Google开发的开源Java单元测试框架。基于JUnit的功能,真理提供了更多可读的断言和错误。

2.优点引入更多可读的断言

在JUnit中,需要一个否定的断言:

可选<。字符串>middle name = user . getmiddle name;

assertFalse);

与真理相比,它的应用编程接口提供了更易读的断言,例如

可选<。字符串>middle name = user . getmiddle name;

assertThat。isAbsent;

而且,在一般的JUnit语法中,断言阅读一般是从右向左的,Truth提供了一种从左向右的方法,更容易阅读和理解,比如:

assertEquals);// JUnit

资产。containsEntry;//真相

更简单的错误消息

当断言失败时,JUnit将抛出AssertionFailedError,某些情况下不会抛出错误消息,这导致在定位错误时需要将测试中的数据复制到自定义的失败消息中,例如下面的例子:

assert true);//正常的JUnit断言

assertTrue);//自定义失败消息

事实上:

颜色。包含;

如果断言失败,您将获得以下信息:

& lt>;应该包含& ltPINK>。

大多数JDK类型都有专用的断言

Truth还为JDK支持的大多数类型提供了可用的断言,例如:对象、原语、数组、字符串、类、可比较对象、可迭代器、集合、列表、集合、映射,甚至支持番石榴类型~

3.使用方法①对于构建文件,使用相应的依赖关系引入方法:

Maven:

& lt依赖性>。

& ltgroupId>。com . Google . truth & lt;/groupId>。

& ltartifactId>。真相<。/artifactId >

& lt版本>。0.42<。/version>。

& lt范围>。测试<。/scope>。

& lt/dependency>。

Gradle:

构建{

repositories.mavenLocal

}

依赖项{

test compile " com . Google . truth:truth:0.42 "

}

注:对于Java8,com . Google . truth . extensions:truth-Java 8-extension:0.42。

②增加真理的静态导入

import statistic . Google . common . truth . truth . assert that;

import static . Google . common . truth . truth . assertwithmail;

//关于Java 8类型的断言

import static . Google . common . truth . truth 8 . assert ThAT;

③.编写单元测试和断言

String string = " awesome

assertThat。以“敬畏”开始;

assertWithMessage。那个。包含;

可迭代<。颜色>Google Colors = Google LoGo . GetColors;

谷歌颜色

。精确包含

。inOrder;

4.构建自动化框架

和JUnit一样,我们可以使用Truth+Jenkins+Git构建自己的自动化接口测试/单元测试框架,可以使用Truth的返回来进行进一步的单元,以满足不同的业务场景。

4.结论

一个工人要想把工作做好,首先必须磨利他的工具

–论语

掌握不同的工具/框架,一方面丰富我们的知识;另一方面,在技术不断更新、业务不断创新的同时,QA人员也能跟上步伐,真正实现“万事易得”。

1.《truth Truth – 更接近单元测试的“真相”》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《truth Truth – 更接近单元测试的“真相”》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1667617.html