如何重写Jasmine 2.0自定义匹配器以与Angular 1.5一起使用

How to rewrite Jasmine 2.0 custom matcher to use with Angular 1.5?

本文关键字:Angular 一起 重写 何重写 Jasmine 自定义      更新时间:2023-11-30

AngularJS教程有一个自定义匹配器,从2.0版开始在Jasmine中不起作用:

beforeEach(function(){
    this.addMatchers({
      toEqualData: function(expected) {
        return angular.equals(this.actual, expected);
      }
    });
  });

修改匹配器的尝试失败,错误为:

TypeError: undefined is not an object (evaluating 'matcherCompare.apply')

我的匹配器定义:

beforeEach(function(){
    jasmine.addMatchers({
      toEqualData: function(util, customEqualityTesters, actual, expected) {
        return angular.equals(actual, expected);
      }
    });
  });

Jasmine 2.0自定义火柴盒文档。

如何使其发挥作用?

beforeEach(function () {
    jasmine.addMatchers({
      toEqualData: function () {
        return {
          compare: function (actual, expected) {
            return {pass: angular.equals(actual, expected)};
          }
        };
      }
    });
  });