Java测试-JUnit4学习笔记
入门
首先在项目中引入junit的依赖:
1 | <dependency> |
编写业务类:
1 | public class Server { |
编写测试类:
1 | import org.junit.Test; |
然后执行mvn clean test
:
1 | ------------------------------------------------------- |
可以看到运行了一个测试,失败了0个测试。这就是用junit进行单元测试的整个基本流程。最后一步还可以使用IDE来执行,会更加直观。
丰富的断言
测试最关键的一个环节是判断逻辑是否正确,而这就是断言的用处。junit提供了许多方便我们使用的断言:
1 | //判断条件是否成立 |
message参数用来指定这条断言的描述,这样在断言失败的时候,会打印这条描述。同时每个有message参数的函数都有一个没有message参数的重载版本,其内部其实都是传了一个值为null的message参数。
有了这些断言,我们可以方便的在测试函数中判断需要测试的函数的结果是否满足条件。
高级断言assertThat
除了基本的断言,junit提供了assertThat这个更加灵活的断言,用法和其他断言不一样,可以看看:
1 | assertThat(x, is(3)); |
大致的结构是:
1 | assertThat([value], [matcher statement]); |
可以很明显的看出来,相较于其他断言,assertThat断言有许多有点(更详细的描述见探索 JUnit 4.4 新特性):
- 更加语义化。“主谓宾”的形式,符合人类思维
- 使用丰富的Matcher进行匹配,写起来更方便
- Matcher可以联合使用
- 错误信息更加丰富
- 用户可以通过实现Matcher接口,定制自己的Matcher
assertThat本来是另外一个项目(Hamcrest)的,正是因为这些优点,所以junit4.4直接把他包含到自己的代码中了。
junit包含了Hamcrest的所有核心Matcher:
1 | /******** 基本匹配符 ********/ |
运行器Runner
【TODO】
Spring Test
【TODO】
参考资料
如果觉得文章对你有帮助,就打赏杯咖啡钱呗😊