1 什么是单元测试
单元测试是检验一个函数、模块或者类是否正确的一段程序,以下是维基百科针对单元测试的描述;
2 为什么要进行单元测试
Egg官方文档中这样说明:
3 有哪些单元测试框架
从搜索结果中整理一些 library 的 keywords 信息,如下:
| 库名 | 关键词1 | 关键词2 | 关键词3 | 关键词4 |
|---|---|---|---|---|
| mocha | tdd bdd | test framework | assertion | |
| jest | Delightful JavaScript Testing | |||
| ava | tdd | Node.js test runner | ||
| chai | BDD/TDD | test framework | assertion library | for node.js and the browser |
| should | BDD | test framework | assertions | |
| jasmine | test framework | for browsers and Node | ||
| karma | Test Runner for JavaScript |
单元测试库的 keywords 从 tdd、 bdd、test framework、 assertion library、 test runner、 for node.js and the boweser 等这些方面进行描述。for node.js and the boweser 意思一目了然,剩余的一个一个看看到底是啥?
在此之前,我们先看看单元测试代码长什么样子?以 mocha 官方文档代码为例
4 assertion
断言库是用于验证事情是否正确的工具,例如上图的assert.equal()。
这使测试代码变得容易得多,因此您不必执行数千个if语句。
5 TDD vs BDD
- TDD: Test Driven Development 的缩写,测试驱动开发。先创建测试用例,再去开发。过程如下:
- BDD: Behavior Driven Development的缩写,行为驱动开发。先确定行为需求,然后开发,接下来才是测试。过程如下:
6 Test runner
测试运行器,只负责找出代码中所有的单元测试用例,然后启动运行它们,最终获取测试结果。并不关心那些测试用例到底是用什么语言编写的,以及我们究竟采用的是什么框架,它所做的仅仅是运行这些测试而已。
Karma是 Test runner,一个可以和多重测试框架协作的测试执行过程管理工具。Karma通过在浏览器中运行单元测试来工作,以允许您测试基于浏览器的JavaScript代码。官网链接:karma-runner.github.io/6.3/intro/i…
7 总结
测试环境(或测试运行器)是运行所有测试的环境。 它启动它们,汇总结果等等。测试框架用于组织和执行测试。断言库是对测试结果进行实际验证的工具。
本文是按照学习思路而整理的一遍笔记,重点在介绍相关的基础概念。文章中的描述以及截图均来自参考文章,希望对大家有所帮助,谢谢🙏。