博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单元测试
阅读量:6231 次
发布时间:2019-06-22

本文共 1297 字,大约阅读时间需要 4 分钟。

一. 单元测试的基本介绍:

1. 什么是单元测试:

  • 单元测试即对一个模块、一个函数或者一个类来进行正确性校验的测试工作

2. 单元测试的意义:

  • 可以确保一个程序模块的行为符合我们设计的测试用例。这样,即使将来对程序模块进行了修改、重构,只要测试用例能够通过,就能最大程度保证该程序模块是正确的

3. 单元测试的注意点:

  1. 对每一个单元进行测试时,需要写多个测试用例,这样才能保证测试结果的准确性
  2. 这要求在开发时,各个单元要尽量解耦,否则单元是不可测的
  3. 单元测试强调的是对程序逻辑的测试,而不是对业务逻辑的测试,例如:
    • 测试某个函数的输出结果是否符合预期——程序逻辑,可以使用单元测试
    • 检测某个表单的输入值是否符合规范——业务逻辑,不能使用单元测试

二.单元测试的基本实现:

测试内容:测试求和函数

测试工具:Node.js的assert模块,该模块具体用法详见Node.js的官方文档

  1. 编写一个hello.js文件,输出一个简单的求和函数
// hello.jsmodule.exports = function(...rest) {    var sum = 0;    for(let n of rest) {        sum += n;    }    return sum;}复制代码
  1. 编写一个test.js文件,使用assert模块对该函数进行测试:
// test.jsconst assert = require('assert');const sum = require('./hello');assert.strictEqual(sum(), 0);assert.strictEqual(sum(1), 1);assert.strictEqual(sum(1, 2), 3);assert.strictEqual(sum(1, 2, 3), 6;复制代码

只要有一项测试没通过,断言就会失败,抛出错误

三.前端单元测试的工程化、自动化

上述案例为我们展示了如何实现一个简单的单元测试,但是有一个明显的缺陷就是:只要有一个assert报错,就会终止整个程序的执行,后面的测试也就无法测试了,这对于我们的实际项目而言显然是不够的,为此,要实现自动化的前端测试,需要借助一些开源框架。

1.单元测试框架——Mocha

Mocha是基于Node.js的JavaScript测试框架,具有如下的一些特点:

  1. 兼容多种风格的断言库
  2. 测试用例可进行分组
  3. 同步兼异步的测试架构
  4. 提供多个生命周期钩子

2.测试框架驱动器——Karma

  • karma是测试框架的驱动器,它为测试提供了多种测试环境,可运行单元测试框架(例如mocha)在这些环境中进行测试,并生成测试报告

测试框架的驱动器 的理解:

  • 如果只是使用mocha整个测试框架来进行开发测试,则每次开发完一个模块,就必须手动启动mocha来进行测试,这就非常的麻烦
  • 使用karma,即可在开发时进行自动对新的代码进行测试,生成测试报告

转载于:https://juejin.im/post/5c8cc0a9f265da2dea05731d

你可能感兴趣的文章
如何理解 (object.getName = object.getName)() 这段代码?
查看>>
Spring AOP 源码分析系列文章导读
查看>>
Linux - 系统 - 文件目录
查看>>
[LeetCode] 267. Palindrome Permutation II
查看>>
前端妹纸的进阶之路——redux源码分析
查看>>
Centos7下使用gitolite搭建git服务器
查看>>
如何更好的编写async函数
查看>>
【前端工程师手册】JavaScript之this的笔记
查看>>
使用nginx来为你在一台服务器部署多个Web Server
查看>>
G5 Capital 与 SegmentFault 达成战略合作
查看>>
抽象类和接口的区别
查看>>
Vue 组件详解
查看>>
前端面试题-主流浏览器内核
查看>>
JavaScript 进阶知识 - Ajax篇
查看>>
阿里巴巴测试环境稳定性提升实践
查看>>
websocket搭建简单的网页聊天室框架【续1】
查看>>
Scrapy Shell
查看>>
array_merge和+号合并数组的区别
查看>>
TP5整合 WorkerMan 以及 GatewayWorker
查看>>
Facebook Docusaurus 中文文档 准备网站
查看>>