接口:AsymmetricEqualityTester

AsymmetricEqualityTester

非对称相等性测试器可以匹配多个对象。示例包括 jasmine.any() 和 jasmine.stringMatching()。Jasmine 包含许多内置的非对称相等性测试器,例如 jasmine.objectContaining。还支持用户定义的非对称相等性测试器。

非对称相等性测试器可以与任何匹配器配合使用,包括用户定义的自定义匹配器,这些匹配器使用 MatchersUtil#equalsMatchersUtil#contains

  • 2.0.0

示例

function numberDivisibleBy(divisor) {
  return {
    asymmetricMatch: function(n) {
      return typeof n === 'number' && n % divisor === 0;
    },
    jasmineToString: function() {
      return `<a number divisible by ${divisor}>`;
    }
  };
}

const actual = {
  n: 2,
  otherFields: "don't care"
};

expect(actual).toEqual(jasmine.objectContaining({n: numberDivisibleBy(2)}));

方法

asymmetricMatch(value, matchersUtil) → {布尔}

确定某个值是否与这个测试器匹配

参数
名称 类型 描述
value 任意

要测试的值

matchersUtil MatchersUtil

用于测试相等性的实用程序等

返回值
类型
布尔

jasmineToString(pp) → {字符串}

返回此测试器在匹配器失败消息中使用的字符串表示形式

参数
名称 类型 描述
pp 函数

接受一个值并返回一个漂亮印刷表示形式的函数

返回值
类型
字符串