单元测试

2023-02-05  本文已影响0人  咯噔爸比

为什么要写单元测试?

因为我是一名专业的计算机工程师

理论上单元测试带来的好处有:

单元测试原则

为什么集成测试不算单元测试呢?我们可以从单元测试原则上来判断。在业界,常见的单元测试原则有AIR原则和FIRST原则。

AIR原则

AIR原则内容如下:
1、A-Automatic(自动的)
单元测试应该是全自动执行的,并且非交互式的。测试用例通常是被定期执行的,执行过程必须完全自动化才有意义。输出结果需要人工检查的测试不是一个好的单元测试。单元测试中不准使用System.out来进行人肉验证,必须使用assert来验证。
2、I-Independent(独立的)
单元测试应该保持的独立性。为了保证单元测试稳定可靠且便于维护,单元测试用例之间决不能互相调用,也不能对外部资源有所依赖。
3、R-Repeatable(可重复的)
单元测试是可以重复执行的,不能受到外界环境的影响。单元测试通常会被放入持续集成中,每次有代码提交时单元测试都会被执行。

FIRST原则

FIRST原则内容如下:
1、F-Fast(快速的)
单元测试应该是可以快速运行的,在各种测试方法中,单元测试的运行速度是最快的,大型项目的单元测试通常应该在几分钟内运行完毕。
2、I-Independent(独立的)
单元测试应该是可以独立运行的,单元测试用例互相之间无依赖,且对外部资源也无任何依赖。
3、R-Repeatable(可重复的)
单元测试应该可以稳定重复的运行,并且每次运行的结果都是稳定可靠的。
4、S-SelfValidating(自我验证的)
单元测试应该是用例自动进行验证的,不能依赖人工验证。
5、T-Timely(及时的)
单元测试必须及时进行编写,更新和维护,以保证用例可以随着业务代码的变化动态的保障质量。

ASCII原则

阿里的夕华先生也提出了一条ASCII原则:
1、A-Automatic(自动的)
单元测试应该是全自动执行的,并且非交互式的。
2、S-SelfValidating(自我验证的)
单元测试中必须使用断言方式来进行正确性验证,而不能根据输出进行人肉验证。
3、C-Consistent(一致的)
单元测试的参数和结果是确定且一致的。
4、I-Independent(独立的)
单元测试之间不能互相调用,也不能依赖执行的先后次序。
5、I-Isolated(隔离的)
单元测试需要是隔离的,不要依赖外部资源。

上一篇下一篇

猜你喜欢

热点阅读