📘
技术积累
  • 简介
  • 学习方法
    • 如何提高编程技能
  • 基础知识
    • Linux
      • Linux常用指令
      • rsync
      • VIM
      • tmate命令行分享
      • 命令别名存储
      • 项目服务器重启
    • 设计模式
    • 自动化接口使用
    • 项目经理培训
    • 报价策略
    • 培训材料撰写
  • 工具
    • Ajax
    • AutV
    • axios
    • Babel
    • bower
    • codecov
    • crypto
    • CSS3D
    • Docker
    • Echarts
    • Git
      • 如何删除项目
      • 多个ssh_key的生成与使用
      • 常用命令清单
    • Gitbook
      • Gitbook 更多配置
      • Markdown 标记示例
    • gulp
    • Istanbul
    • JEST
    • jMeter
    • js-md5
    • Kama
    • LESS Sass 编译工具Koala介绍
    • Lodash
    • Markdown
    • Maven
    • Moment
    • Nginx
    • NPM
    • NVM
    • particles.js粒子效果
    • PM2
    • Qs
    • Swagger
    • Webpack
    • Webpack
    • Yarn
    • Yeoman使用
  • 平台
    • 代码托管平台 GitLab
    • 代码安全平台 sonarqube
  • 语言和框架
    • 工作流
    • Angular
      • FUSE-Angular前端框架项目初始化
      • AngularJs-toaster-Angular提示弹框插件
      • ng-file-upload-Angular上传图片插件
      • ngclipboard-Angular复制到剪贴板插件
    • Vue
      • ElementUI-Vue前端框架项目初始化
      • clipboard使用
      • mobileSelect.js使用
      • vue-cookies使用
      • vue-fullpage使用
      • vue-router使用
      • Vue的Ref属性
      • Vuex使用
      • Vux使用
      • vux-uploader使用
      • Vue生命周期图例
      • iview-loader使用
    • cycleJs
    • ES6
      • async/await
    • react
      • react生命周期
      • create-react-app
      • Rematch
      • react-router
      • react-router-dom
      • css-in-js
    • TypeScript
      • VueAndTypeScript
    • 微信小程序
    • Hexo博客框架
      • Hexo博客框架-图片问题处理
      • Hexo博客框架-切换主题
    • SmartClient
    • HybridApp混合开发
      • uniapp
  • 代码审查
    • 代码命名规范
    • 页面代码结构
    • JavaScript标准编码风格
    • AirbnbJavaScript风格指南
  • 其他
    • 收藏|激发灵感的33套网页配色方案(附色值)
    • KPI&OKR
    • 测试自动化
    • view
    • 前端面试
      • 项目方面
      • html+css
      • JavaScript方面
      • JavaScript面试
      • 框架方面
      • 前端面试3+1
        • 20190420
        • 20190419
        • 20190418
        • 20190417
    • Linux面试题
    • JAVA面试
    • 测试面试
    • 钉钉使用
    • sd360
  • 前端知识积累
    • css3单位汇总
    • CSS解决loading效果
    • 深度克隆的方法
    • 加密技术
    • 解决ios下的微信页面背景音乐无法自动播放问题
    • 一套绝佳的图标字体库和CSS框架:Font Awesome
    • 关于ico图标不显示解决办法
    • 提升页面响应速度
    • innerHTML引入的script如何使用
    • JavaMap转Json
    • JS开发工具大全
    • 移动端插件
    • 移动端页面通过前端方法禁止ios页面横屏方法
    • 图片资源网站
    • 排序方式
    • 图片预览上传
    • Windows部署时脚本报错
Powered by GitBook
On this page
  • jest
  • 第一章 jest入门

Was this helpful?

  1. 工具

JEST

课堂笔记

简介

Javascript单元测试工具

Jest是白盒测试

白盒测试:知道程序内部逻辑结构,进行测试

(黑盒测试:不知道程序内部逻辑进行测试)

(灰盒测试:介于黑白之间的)

单元格测试:针对函数测试

下载

Matchers

测试

Promise是一个异步对象vue中的axios就用到这个对象

.then()成功执行

.catch()失败执行

Vim:wq保存并退出:!q强制退出

jest

第一章 jest入门

1.1 jest简介

  • Jest是Facebook开发的一个对javascript进行单元测试的工具,之前仅在其内部使用,后开源,并且是在Jasmine测试框架上演变开发而来,使用了我们熟知的expect(value).toBe(other)这种断言格式

  • jest是白盒测试,即为知道程序内部逻辑结构。要求测试人员有一定的技术知识。

  • jest是单元格测试,即对函数进行测试。每个函数视为一个单元。

1.2 jest下载与简单使用

1, 安装Jest使用npm:

npm install --save-dev jest

 2, 创建一个sum.js文件内容为:

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () =
>
 {
  expect(sum(1, 2)).toBe(3);
});

3, 在sum相同的目录下创建sum.test.js文件(为什么叫__test__?见官网首页)

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () =
>
 {
  expect(sum(1, 2)).toBe(3);
});

4, package.json添加以下部分:

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

5, 终端输入npm test,打印出测试结果:

PASS  ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)

1.3 jest Matchers

1, 什么是Matchers?

test('adds 1 + 2 to equal 3', () =
>
 {
  expect(sum(1, 2)).toBe(3);
});

上面代码块中的expect函数返回一个对像,Matchers就是这个对象的一些方法,比如.toBe()

2, Macther的作用?

Macther是用来比较值的,举个栗子:expect(1234)中的1234是实际值,MachtertoBe(2468)中的2468便是期望值,Macher会比较这个值。栗子中我们是使用的是toBe(全等于),如果1234全等于2468则通过(pass),否则fail.

3,常用的Macther

toBe()

全等于,之所以叫全等于是因为它用的其实js中的====

test('object assignment', () =
>
 {
  const data = {one: 1};
  data['two'] = 2;
  expect(data).toEqual({one: 1, two: 2});
});

toEqual()

用于测试object和array是否相等,它会遍历到没每一项进行比较

test('adding positive numbers is not zero', () =
>
 {
  for (let a = 1; a 
<
 10; a++) {
    for (let b = 1; b 
<
 10; b++) {
      expect(a + b).not.toBe(0);
    }
  }
});

not

取反

test('adding positive numbers is not zero', () =
>
 {
  for (let a = 1; a 
<
 10; a++) {
    for (let b = 1; b 
<
 10; b++) {
      expect(a + b).not.toBe(0);
    }
  }
});

jest测试promise

var getName = new  Promise(function(resolve,reject) {
    setTimeout(function() {
        resolve('jiangwei')
    });
});

test('the data is jiangwei', () =
>
 {
  return getName().then(data =
>
 {
    expect(data).toBe('jiangwei');
  });
});
PreviousIstanbulNextjMeter

Last updated 4 years ago

Was this helpful?