百度前端训练营----js单元测试

为什么要进行单元测试

单元测试慢
后期测试会找到所有 bug
单测没什么用,找不到什么 bug
我是开发,不想搞测试

对于整体的项目而已,单元测试是前期慢,后期快的工作。做好单元测试可以大大缩短后期的测试和改 bug 的时间

在这里插入图片描述

不同阶段改 bug 的时间成本

在这里插入图片描述

defects/KLOC 千行代码的缺陷数,又称缺陷密度

不同阶段测试花费的时间不同,越往后测试成本越高

JS 单测简介

什么是单元测试

单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。

在这里插入图片描述

单元测试的好处

  1. 预见性:有效的保证你写的代码就是你想要的结果
  2. 早期性:尽可能在软件开发的早期就能发现问题
  3. 说明性:单元测试可以是文档,它可以提供例子告诉别人如何使用你的代码
  4. 保障性:对已有功能进行重构时,确保不会影响历史功能

单元测试框架介绍

单元测试框架的作用

在这里插入图片描述

基础类库用于轻松编写结构化的测试

  • 标记测试方法的属性
  • 提供断言方法的断言类或者提供集成这些类库的能力

测试运行器用于可自动执行一个或全部单元测试

  • 已运行/未运行测试数据
  • 失败的测试数据、测试失败的原因、异常栈信息

常见的 JS 测试框架

AVA

在这里插入图片描述

AVA is a test runner for Node.js with a concise API , detailed error output , embrace of new language features and process isolation that lets you develop with confidence🚀

tape

在这里插入图片描述

tap-producing test harness for node and browsers

Jasmine

在这里插入图片描述

Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.

Mocha

在这里插入图片描述

Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases.

Jest

在这里插入图片描述

Jest is a delightful JavaScript Testing Framework with a focus on simplicity.

JS 测试框架衡量指标

  • 运行环境的支持:Node 端和 Browser 的支持
  • 并发的支持:支持并发的测试框架能够提高测试用例执行的速度
  • 库的集成度:有的框架只有最基础的功能,有的库集成很多丰富的功能,开箱即用
  • 社区的活跃度:一个活跃的社区能够让你在框架有问题时,得到更快的解决

在这里插入图片描述

Jest 场景实战

Jest 框架简介

Jest 是 Facebook 开发的一款 JavaScript 测试框架。在 Facebook 内部广泛用来测试各种 JavaScript 代码

  • 轻松上手
  • 高性能支持测试的并发运行
  • 内置强大的断言与 mock 功能
  • 内置测试覆盖率统计功能
  • 内置 Snapshot 机制

环境准备

npm init -y
npm i jest -D

修改 package.json

"scripts":{
   
	"test":"jest"
}

推荐插件

在这里插入图片描述

ctrl+shift+p: Jest: Start All Runners

在这里插入图片描述

支持 ES6

安装ES6语法解析转换插件

npm i --save-dev @babel/plugin-transform-modules-commonjs

package.json

"scripts": {
   
	"test": "jest"
},
"jest": {
   
	"collectCoverage": true
},

package.json 同目录下添加 .babelrc.json

{
   
  "env": {
   
    "test": {
   
      "plugins"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值