如何在自定义匹配器中恢复Jasmine间谍名称

时间:2018-04-22 13:33:51

标签: javascript jasmine jasmine-matchers

我将在Jasmine 2.0中创建一个自定义匹配器来验证间谍是否存在其他一些条件。在大大简化中,例如:

var customMatchers = {
  toDoSomething: function(util, customEqualityTesters) {
    return {
      compare: function(spy) {
        var comparison = {};
        comparison.pass = testSomeCondition(spy);
        if (!comparison.pass) {
          comparison.message = "Expect " + /insert code here/ + " to do something";
        }
        return comparison;
      }
    }
  }
};

beforeEach(function() {
    jasmine.addMatchers(customMatchers);
});

我的问题是,如何恢复间谍名称,作为工厂方法的第一个参数传递:createSpy(name, originalFn)

我在Jasmine documentation v2.6中找不到任何在线教程中的内容。

console.log(spy)返回function(...) {...}

1 个答案:

答案 0 :(得分:0)

我不知道这样做是否正确,但在Jasmine源代码中找到toHaveBeenCalled最初是如何实现并找到的:

spy.and.identity()

它也适用于自定义匹配器。