zoukankan      html  css  js  c++  java
  • Jest 学习笔记(一)之matchers

      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):字符串匹配正则表达式。

  • 相关阅读:
    DecimalPercentageConverter
    Asp.Net 性能 ViewState 压缩的2种方法
    Listbox template
    Datagrid template for listbox and textbox
    ToPercentConverter : IValueConverter
    繁體中文
    Silverlight ComboBox 设置选中项
    鲁迅:纪念刘和珍君
    ASP.NET系统整合DiscuzNT3.6之注意事项
    [转]js动态创建json类型
  • 原文地址:https://www.cnblogs.com/holajulie/p/7804637.html
Copyright © 2011-2022 走看看