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

标签 javascript angularjs jasmine

AngularJS tutorial有自定义匹配器在 Jasmine 中不起作用 starting from version 2.0 :

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

尝试修改匹配器失败并出现错误:

类型错误:未定义不是对象(正在评估“matcherCompare.apply”)

我的匹配器定义:

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

Jasmine 2.0 custom matcher docs .

如何让它发挥作用?

最佳答案

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

关于javascript - 如何重写 Jasmine 2.0 自定义匹配器以与 Angular 1.5 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36366608/

相关文章:

javascript - Knockout-Sortable horizo​​ntal list 在拖动项目时垂直推送项目

javascript - 如何在 Javascript 的 P 标签中添加 json 值

javascript - 如何解决错误 "THREE.GLTFLoader: Failed to load buffer "scene.bin“。”?

angularjs - 从后端获取数据时,分页控件未显示在 ng-table 中

javascript - AngularJS 中的表单验证和动态控件

javascript - AngularJS - HTTP POST 异步回调未在指定的超时内调用

javascript - 使用 CompositeView 呈现递归结构,同时使用 Marionette 将每个模型封装在 ItemView 中

javascript - 是否有可能通过多个 JS 脚本影响单个 Angular 应用程序?

node.js - 模拟请求对象不适用于 Node.js 中的测试

javascript - Protractor - beforeEach 中的异步任务