web单元测试入门一

385 阅读2分钟

1 什么是单元测试

单元测试是检验一个函数、模块或者类是否正确的一段程序,以下是维基百科针对单元测试的描述;

截屏2022-03-03 下午3.52.09.png

2 为什么要进行单元测试

Egg官方文档中这样说明:

截屏2022-03-02 下午4.17.16.png

3 有哪些单元测试框架

npm 搜索 test framework

截屏2022-03-02 下午4.30.36.png

从搜索结果中整理一些 librarykeywords 信息,如下:

库名关键词1关键词2关键词3关键词4
mochatdd bddtest frameworkassertion
jestDelightful JavaScript Testing
avatddNode.js test runner
chaiBDD/TDDtest frameworkassertion libraryfor node.js and the browser
shouldBDDtest frameworkassertions
jasminetest frameworkfor browsers and Node
karmaTest Runner for JavaScript

单元测试库keywordstddbddtest frameworkassertion librarytest runnerfor node.js and the boweser 等这些方面进行描述。for node.js and the boweser 意思一目了然,剩余的一个一个看看到底是啥?

在此之前,我们先看看单元测试代码长什么样子?以 mocha 官方文档代码为例

截屏2022-03-06 上午12.49.50.png

4 assertion

断言库是用于验证事情是否正确的工具,例如上图的assert.equal()。 这使测试代码变得容易得多,因此您不必执行数千个if语句。 截屏2022-03-03 下午4.41.11.png

5 TDD vs BDD

  • TDD: Test Driven Development 的缩写,测试驱动开发。先创建测试用例,再去开发。过程如下:

截屏2022-03-06 上午1.09.06.png

截屏2022-03-06 上午1.08.54.png

  • BDD: Behavior Driven Development的缩写,行为驱动开发。先确定行为需求,然后开发,接下来才是测试。过程如下:

截屏2022-03-06 上午1.15.13.png

6 Test runner

测试运行器,只负责找出代码中所有的单元测试用例,然后启动运行它们,最终获取测试结果。并不关心那些测试用例到底是用什么语言编写的,以及我们究竟采用的是什么框架,它所做的仅仅是运行这些测试而已。

Karma是 Test runner,一个可以和多重测试框架协作的测试执行过程管理工具。Karma通过在浏览器中运行单元测试来工作,以允许您测试基于浏览器的JavaScript代码。官网链接:karma-runner.github.io/6.3/intro/i…

7 总结

测试环境(或测试运行器)是运行所有测试的环境。 它启动它们,汇总结果等等。测试框架用于组织和执行测试。断言库是对测试结果进行实际验证的工具。

本文是按照学习思路而整理的一遍笔记,重点在介绍相关的基础概念。文章中的描述以及截图均来自参考文章,希望对大家有所帮助,谢谢🙏。

参考文章