Better

Ethan的博客,欢迎访问交流

JavaScript Testing

目前自己代码关于测试一块涉及的比较少,以后还是要有意识的多尝试。

测试类型

JavaScript代码测试有很多分类,比如单元测试(unit test)、集成测试(integration test)、功能测试(functional test)、端到端测试(end to end test)、回归测试(regression test)、浏览器测试(browser test)

总的来看,可以分为下面三种测试类型:

  • 单元测试:通常指独立测试单个函数,通过模拟输入和预测输出的方式测试独立的函数或者类。
  • 集成测试:测试应用中不同模块如何集成,如何一起工作。测试多个模块间的联动是否和期望相同。
  • 功能测试:也被称作端到端测试,或者浏览器测试,对于网页应用,功能测试意味着使用工具模拟浏览器,然后通过点击页面来测试应用。关注点不在内部实现方式,而是测试产品在真实使用场景(比如在浏览器)中是否可以达到预想的结果。

测试JavaScript代码时,应该着重于单元测试,它非常容易编写和维护,除了可以减少BUG还有很多益处。而集成测试与功能测试应该作为补充。

测试工具分类

常见测试工具分类有

  • 单元测试工具:jasmine、mocha,Jest
  • 断言库:assert、should、chai、jasmine
  • 单元测试代码覆盖率:istanbul
  • 测试管理工具:karma
  • 端到端测试:protractor、Selenium
  • HTTP 接口测试:superTest

比如单元测试,我们可以选型为:Mocha + Should + SuperTest

  • Mocha:测试框架
  • Should:断言库,也可以使用Node.js自带的断言库Assert,但是Should提供的函数更加丰富
  • SuperTest:测试HTTP接口,可以使用Node.js自带的HTTP模块测试,但是SuperTest更加方便

资料



留言