Jest 学习笔记(一)之matchers
Jest是专门被facebook用于测试包括React应用在内的所有javascript代码,Jest旨在提供一个综合的零计算的测试体验。
因为没有找到文档,基于我个人的经验,Jest是要在babel环境下才能够使用的,所以请查看babel官网首页学习babel安装方式。
安装jest,在控制台的项目所在文件夹输入下列代码:
npm install --save-dev jest 或者 yarn add --dev jest
在package.json中配置:
{
"scripts": {
"test": "jest"
}
}
你可以使用Jest中的“matchers”去测试代码,以下将介绍最常用的matchers.
test('two plus two is four', () => {
expect(2 + 2).toBe(4);
});
以上代码为jest的书写方式,expect(2 +2) 返回一个“expectation”对象,你除了调用这个对象,通常不会有太多其他的操作。toBe(4) 就是matcher。
.not:举例:expect(value).not.toBe(2); 只要value不等于2就ok.
toBe(value):用 === 来测试完全相等
toEqual(object): 测试对象是否相等。
toBeNull(): 只匹配Null
toBeUndefined(): 只匹配undefined
toBeFalsy():匹配假。0和null都为假哦。
toBeCloseTo(浮点数):浮点数的比较。不能使用toEqual().
toMatch():匹配字符串中是否存在字符,与正则表达式搭配使用。expect('Christoph').toMatch(/stop/);
toContain(数组里的value): 数组是否包含某特定子项。但是不能测试数组里是否包含某一数组。
toThrow(): 因为怎么用错误处理,没太看懂。原文:如果你想要测试的特定函数抛出一个错误,在它调用时,使用 toThrow。
extend(matchers): 将自己的匹配器添加到Jest。
matcher中的有一个关键字pass来定义测试成功与否。
this.isNot(); this.equals(a, b);
this.utils(); 上的一些工具主要由jest-matcher-utils导出,最常用的是 matcherHint(); printReceived();
jest官方建议:在写自己的matcher时,最好是能尽可能地给出详细的信息以便于使用者能很快的修正错误。
anything():匹配除了 null 和 undefined 的值。
any(constructor):生成任意的该类型数据。
any(Number)的返回值:
Any {
'$$typeof': Symbol(jest.asymmetricMatcher),
sample: [Function: Number] }
arrayContaining(array):和any(construcor)类似。
assertions(number):确认断言函数被调用的次数。常用于测试异步函数,确保回调函数内的断言函数确实被调用。
hasAssertions():用于确认至少有一个断言函数被调用。常用于测试异步函数,确保有回调函数确实被调用。
objectContaining(object):用于判断一个对象是否包含在另一对象中,测试一个对象是否调用了某方法也可以用此方法。(没太看懂怎么运用)
stringContaining(string):一个字符串是否包含另一个字符串。仅用于jest 19.0.0+。
stringMatching(regexp):字符串匹配正则表达式。
Jest 学习笔记(一)之matchers的更多相关文章
- 【Jest】笔记二:Matchers匹配器
一.前言 什么是匹配器? 我们可以把匹配器看成,testng断言,这么理解就可以了 二.常用的匹配器 test('two plus two is four', () => { expect(2 ...
- DBus学习笔记
摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的 ...
- OpenCV 2.4.9 学习笔记(1)—— 基本功能结构
一些关于OpenCV(2.4.9版本)的学习笔记,作为记录,以免自己忘了. 安装与配置 OpenCV的下载.安装以及在各个平台(Windows/Linux等)配置网上有很多的资料,自己就不用存了.需要 ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
随机推荐
- Jmeter 常见错误
常见错误 https://testerhome.com/topics/10950 接口测试 https://blog.csdn.net/github_27109687/article/details/ ...
- RsaUtils
参考来源:https://www.cnblogs.com/pcheng/p/9629621.html 里面的这段话,非常好 RSA加密对明文的长度有所限制,规定需加密的明文最大长度=密钥长度-11(单 ...
- T57274 黑暗城堡
传送门 思路: 先求出各个点到 1 的最短路径.分别用两个数组将最短路径记录下来(一个要用来排序).按排序后的 dis 值从小到大枚举各点加入树有多少种方案,最后根据乘法原理把各个点的方案数乘起来就是 ...
- loadrunner中组合场景的应用
进行性能测试的回归测试时,可以设置组合场景,例如: 这时可以以组的形式运行: 运行效果如下: 当login运行完成后,运行goodslist脚本 . 运行时可以查看运行用户数.事务平均响应时间.吞吐量 ...
- imp、exp命令导出优化
本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其对应的參数进行了说明,然后通过一些演示样例进行演练,加深理解.文章最后对运用这两个命令可能出现的问题(如权限不够,不同o ...
- ANSI/ISO C 关键字(汇总)
ANSI/ISO C 关键字 汇总: auto break case char const continue default do double else enum extern ...
- JS数组遍历
1. forEach() 循环数组,不会改变元素,不会返回新数组 arr.foreach((value,index)=>{}) 2. map() 遍历数组,对每个元素进行处理,之后返回元素:会返 ...
- 服务器与客户端连接 & 聊天机器人
服务器运行当显示 E:\pycharm\python\venv\Scripts\python.exe E:/pycharm/python/协议/机器人聊天服务器.py 开始监听 accept 说明服务 ...
- 通过P3P头实现跨域设置cookie
PHP的setcookie函数可以设置域,但是只能在当前域内,如果出现多域可由如下办法处理:实现原理:www.b.com/set_cookie.php 在b域名下设置a域名的cookie < ...
- C# 结构与类的区别
一.定义方式 定义结构: struct PointStruct //默认的访问权限是 public { public int X { get; set; } public int Y { get; s ...