angular2 单元测试 - jasmine - 匹配器(matcher)

Jasmine 匹配器 matcher

属性:

  not:

    意义:反转后连接的匹配器

    type:matchers

    例子:

expect(something).not.toBe(true);

 

方法:

  nothing()

    意义:expect 没有明确

    例子:

expect().nothing();

 

  toBe(expected)

    意义:expect  实际值与expected(期望值)全等(===)

    参数:

      expected:Object,期望值

    例子:

expect(thing).toBe(realThing);

  

  toEqual(expected)

    意义:expect  实际值等于期望值,使用深度相等比较

    参数:

      expected:Object,期望值

    例子:

expect(bigObject).toEqual({"foo": ['bar', 'baz']});

  

  toBeDefined()

    意义:expect  实际值被定义,即不是undefined

    例子:

expect(result).toBeDefined();

 

  toBeUndefined()

    意义:expect  实际值未定义,即undefined

    例子:

expect(result).toBeUndefined();

 

  toBeNaN()

    意义:expect 实际值是NaN

    例子:

expect(thing).toBeNaN();

 

  toBeNull()

    意义:expect 实际值为 null

    例子:

expect(thing).toBeNull();

 

  toBeTrue()

    意义:expect  实际值为 true

    例子:

expect(true).toBeTrue();

    

  toBeTruthy()

    意义:expect 实际值被计算结果为 true

    例子:

const re1 = 1;
const re2 = '1234';
const re3 = true; expect(re1).toBeTruthy(); expect(re2).toBeTruthy();
expect(re3).toBeTruthy();

 

  toBeFalse()

    意义:expect  实际值为 false

    例子:

expect(false).toBeFalse();

   

  toBeFalsy()

    意义:expect 实际值被计算结果为 false

    例子:

const re1 = 0;
const re2 = false;
expect(re1).toBeFalsy();
expect(re2).toBeFalsy();

 

  toContain(expected)

    意义:expect 实际值包含期望值

    参数:

      expected:Object,期望值,

    例子:

expect(array).toContain(anElement); 
expect(string).toContain(substring);

 

  toBeGreaterThan(expected)

    意义:expect 实际值大于期望值

    参数:

      expected:Number,期望值

    例子:

expect(3).toBeGreaterThan(2);

 

  toBeGreaterThanOrEqual(expected)

    意义:expect 实际值大于或等于期望值

    参数:

      expected:Number,期望值

    例子:

expect(2).toBeGreaterThanOrEqual(2);

 

  toBeLessThan(expected)

    意义:expect 实际值小于期望值

    参数:

      expected:Number,期望值

    例子:

expect(3).toBeLessThan(6);

 

  toBeLessThanOrEqual(expected)

    意义:expect 实际值小于或等于期望值

    参数:

      expected:Number,期望值

    例子:

expect(2).toBeLessThanOrEqual(2);

 

  toBeCloseTo(expected, precisionopt)

    意义:expect  实际值应在期望值的指定精度内

    参数:

      expected:Object,期望值

      precision:可选(opt),Number,要检查的小数点长度,默认值2

    例子:

expect(number).toBeCloseTo(42.2, 3);

  

  toBeNegativeInfinity()

    意义:expect 实际值是 -infinity(-无穷大∞)

    例子:

expect(thing).toBeNegativeInfinity();

 

  toBePositiveInfinity()

    意义:expect 实际值是 infinity(无穷大∞)

    例子:

expect(thing).toBePositiveInfinity();

 

 toBeInstanceOf(expected)

    意义:expect 实际值是期望的 class 的实例

    参数:

      expected:Object,期望值,class 或者 Constructor

    例子:

expect('foo').toBeInstanceOf(String); 
expect(3).toBeInstanceOf(Number);
expect(new Error()).toBeInstanceOf(Error);

 

 toHaveBeenCalled()

    意义:expect 实际值(spy)被调用过

    例子:

expect(mySpy).toHaveBeenCalled(); 
expect(mySpy).not.toHaveBeenCalled();

 

 toHaveBeenCalledTimes(expected)

    意义:expect 实际值(spy)被调用 的 次数(expected)

    参数:

      expected:Number,被调用的次数

    例子:

expect(mySpy).toHaveBeenCalledTimes(3);

 

  toHaveBeenCalledWith()

    意义:expect 实际值(spy)被特定参数调用至少一次

    参数:

      expected:Object,可传多个,要查找的参数(s)

    例子:

expect(mySpy).toHaveBeenCalledWith('foo', 'bar', 2);

 

 toHaveBeenCalledBefore(expected)

    意义:expect 实际值(spy)在另一个 spy 之前被调用

    参数:

      expected:Spy,应该在实际值(Spy)调用之后调用的 spy

    例子:

expect(mySpy).toHaveBeenCalledBefore(otherSpy);

 

  toHaveClass(expected)

    意义:expect 实际值是具有某class类的DOM元素

    参数:

      expected:Object,要检查的class类

    例子:

const el = document.createElement('div'); 
el.className = 'foo bar baz';
expect(el).toHaveClass('bar');

 

  toMatch(expected)

    意义:expect 实际值要匹配某正则表达式

    参数:

      expected:RegExp | String,要在字符串中查找的值

    例子:

expect("my string").toMatch(/string$/);
expect("other string").toMatch("her");

 

  toThrow(expectedopt)

    意义:expect 实际值为有返回值的function,测试其返回值是否是期望值

    参数:

      expected:Object,可选(opt),function应该被返回的期望值,如果不设置,只需要检查返回的内容

    例子:

expect(function() { return 'things'; }).toThrow('foo');
expect(function() { return 'stuff'; }).toThrow();

 

  toThrowError(expectedopt, messageopt)

    意义:expect 实际值为返回 error 的 function

    参数:

      expected:Error,可选(opt),function 返回的对象需要是一个 Error 实例,如果没有提供,则将使用Error

      meaasge:RegExp | String,可选(opt),应该在返回Error时设置的提示信息。

    例子:

expect(function() { return 'things'; }).toThrowError(MyCustomError, 'message'); 
expect(function() { return 'things'; }).toThrowError(MyCustomError, /bar/);
expect(function() { return 'stuff'; }).toThrowError(MyCustomError);
expect(function() { return 'other'; }).toThrowError(/foo/);
expect(function() { return 'other'; }).toThrowError();

 

  toThrowMatching(predicate)

    意义:expect 实际值为返回与predicate匹配 的 function

    参数:

      predicate:function,将返回的异常作为参数并在匹配时返回 true 的函数。

    例子:

expect(function() { throw new Error('nope'); }).toThrowMatching(function(thrown) { return thrown.message === 'nope'; });

 

  withContext(message) → {matchers}

    意义:为 expect 添加一些内容

    参数:

      message:String,当匹配程序失败时显示的附加内容

    type:matchers

 

posted @ 2020-04-26 16:59  冰凝^  阅读(538)  评论(0编辑  收藏  举报