入门单元测试(javaScript篇)

单元测试的定义

  1. 单元测试(Unit Testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
  2. 单元测试的特点如下:
    • 最小可测试部件
    • 单元与单元是相互独立的
    • 执行速度快
    • 问题相对容易定位
    • 开发人员编写
    • 通过了解代码的实现逻辑进行的测试,通常也叫白盒测试

单元测试框架

  • javascript
    mocha(推荐),jasmine,qunit(jquery出品)

  • java
    junit

  • android
    junit,robolectric(junit的扩展)

  • c
    cunit

  • python
    unittest(pyunit)

测试工具和语言

我们这里选择javaScript来简单实验一些单元测试。我们选择Mocha作为我们的单元测试工具。它入门简单,能同时适用于基于浏览器的测试和 Node.js 的测试,而且与其它测试工具配合同样运行良好。

设置目录结构

为了让文件结构更清晰,应将测试文件放在主代码文件的一个独立目录下。这是为了方便以后添加其它类型的测试(如集成测试(integration tests) 和 功能测试(functional tests))。

对于 JavaScript,最流行的实践方案是在项目根目录下创建一个 test/ 文件夹。然后,将每个测试文件放置在该文件夹下,如 test/someModuleTest.js。另一种方案是,在 test/目录下,再创建文件夹。但我建议尽量保持简单——这样能保证在后面必要时进行(快速)修改。

image.png

单元测试例子

js文件

测试文件

我们这里引入的chai是断言库,mocha支持多种断言库可以自由选择

测试结果

更多的Mocha学习可以去阮一峰的博客或者mocha官网学习,讲的比较详细。

源码中的单元测试

我们就来看jquery的代码是怎么进行单元测试的,这里jquery是用jquery自家出品的qunit单元测试框架来进行测试的。我们先来看一些qunit框架的内容。


image.png
image.png

直接进入jquery的源码


源码
测试
源码

测试

问题

  1. 怎样更有效的进行单元测试
  2. 一定要使用单元测试框架吗
  3. 编写更有效的测试用例(一个测试单元几个测试用例更好)

你可能感兴趣的:(入门单元测试(javaScript篇))