0

我将在 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 文档 v2.6中也找不到任何在线教程。

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

4

1 回答 1

0

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

spy.and.identity()

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

于 2018-04-22T13:33:51.367 回答