Jest官网地址  

  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的更多相关文章

  1. 【Jest】笔记二:Matchers匹配器

    一.前言 什么是匹配器? 我们可以把匹配器看成,testng断言,这么理解就可以了 二.常用的匹配器 test('two plus two is four', () => { expect(2 ...

  2. DBus学习笔记

    摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的 ...

  3. OpenCV 2.4.9 学习笔记(1)—— 基本功能结构

    一些关于OpenCV(2.4.9版本)的学习笔记,作为记录,以免自己忘了. 安装与配置 OpenCV的下载.安装以及在各个平台(Windows/Linux等)配置网上有很多的资料,自己就不用存了.需要 ...

  4. Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  7. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  8. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  9. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

随机推荐

  1. C语言--第2次作业

    1.本章学习总结 1.1思维导图 1.2本章学习体会及本章代码量 1.2.1学习体会 不同于前几周简单的条件语句等,这一周开始学习循环结构for,while语句,甚至是多种语句嵌套使用,让我直接感受到 ...

  2. ArrayList源码阅读笔记(1.8)

    目录 ArrayList类的注解阅读 ArrayList类的定义 属性的定义 ArrayList构造器 核心方法 普通方法 迭代器(iterator&ListIterator)实现 最后声明 ...

  3. C#实现基于ffmpeg加虹软的人脸识别demo及开发分享

    对开发库的C#封装,屏蔽使用细节,可以快速安全的调用人脸识别相关API.具体见github地址.新增对.NET Core的支持,在Linux(Ubuntu下)测试通过.具体的使用例子和Demo详解,参 ...

  4. IE低版本 JSON.parse 和stringify 的兼容 (IE8以下)

    低版本的IE不支持JSON,JSON对象解析不是随着javascript产生的,找到一段兼容常用的JSON.parse和JSON.stringify的代码if (!window.JSON) {wind ...

  5. Unity --- 如何简单的判断图片是否含有 alpha channel

    var texImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter; if (texImporter.DoesSourceT ...

  6. 理解去中心化 稳定币 DAI

    本文转载于深入浅出区块链, 原文链接 随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器. 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机 ...

  7. hashlib 和 hmac 算法的区别

    -----md5 = hashlib.md5() md5.update(password+salt) md5.hexdigest() ----- h = hmac.new(key,password,d ...

  8. Vant-Weapp小程序+商城案例

    功能还在进一步完善中,欢迎扫一扫提出宝贵意见! 详细信息可进群沟通:

  9. jquery 根据文本设置选中某个选项

    <select name="streetid" id="streetid"> <option value="4">a ...

  10. nginx插入lua脚本访问redis

    目标:收集用户日志 流程: 浏览器端get方法将数据传到nginx服务 nginx收集到数据,执行内嵌lua脚本,访问redis,根据token获得用户id 将日志信息存入文件 1.nginx安装,参 ...