参考:掘金
为什么要进行单元测试?
- 保证代码正确性
- 放心进行重构
- 驱动开发TDD
- 实现自动化测试
测试驱动开发
它是一种测试先于编写代码的思想用于指导软件开发
在TDD中侧重点偏向开发,通过测试用例来规范约束开发者编写出质量更高、bug更少的代码
行为驱动开发
行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作
BDD更加侧重设计,其要求在设计测试用例的时候对系统进行定义,倡导使用通用的语言将系统的行为描述出来,将系统设计和测试用例结合起来,从而以此为驱动进行开发工作。
断言库
所谓"断言",就是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。
它是编写测试用例的关键。断言功能由断言库来实现,Mocha 本身不带断言库,所以必须先引入断言库。
前端测试流
测试脚本
通常,测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js(表示测试)或者.spec.js(表示规格)。
mocha
Mocha 测试用例主要包含下面几部分:
- describe 定义的测试套件(test suite),表示一组相关的测试。
- it 定义的测试用例(test case),表示一个单独的测试,是测试的最小单位。
- 测试代码
- 断言部分
Karma
可以监控一套文件的变换,并立即开始测试已保存的文件,用户无需离开文本编辑器。
如果要使用 karma 和 mocha 最好通过npm install karma-cli -g
全局安装karma-cli
。
Travis.CI
提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。