天天看点

单元测试

三丰 soft张三丰

单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如c语言中单元指一个函数,java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

在一种传统的结构化编程语言中,比如c,要进行测试的单元一般是函数或子过程。在像c++这样的面向对象的语言中, 要进行测试的基本单元是类。对ada语言来说,开发人员可以选择是在独立的过程和函数,还是在ada包的级别上进行单元测试。单元测试的原则同样被扩展到第四代语言(4gl)的开发中,在这里基本单元被典型地划分为一个菜单或显示界面。

经常与单元测试联系起来的另外一些开发活动包括代码走读(code review),静态分析(static analysis)和动态分析(dynamic analysis)。静态分析就是对软件的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和执行。动态分析就是通过观察软件运行时的动作,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。

hamcrest是用于java的单元测试的框架,它使用matcher匹配器来进行断言。在spring-boot-starter中集成了hamcrest,无需而外引入。

1.is

使用is匹配器使得程序更加易懂

用于简单数据类型的判断

2.not

和is使用方式一样,只是含义相反。

使用not匹配器使得程序更加易懂

3.containsstring

是否包含子串

4.以为某个字段开头/结尾

5.判断两个对象是否为同一个实体

6.类似or的效果

7.类似and的效果

1.匹配空串

2.匹配字符串相等

1.检查某个元素是否在集合中

2.检查所有元素

3.为空检查

集合为空检查

数组为空检查

map为空检查

iterable为空检查

4.检查数目

检查集合数目

5.检查iterable数目

5.检查每项的条件

定义一个city的bean

1.测试是否存在某个属性

2.判断两个对象property值是否一样

junit 5 对 java 运行环境的最低要求是 java 8。

intellij idea支持自2016.2之后支持junit5。

推荐使用idea 2017.3或之后的版本。

各idea版本和支持的junit5版本对照:

单元测试

junit5常用注解:

单元测试

junit 5 提供了三种不同的方式来执行测试用例,分别是通过 gradle 插件、maven 插件和命令行来运行。