茉莉花测试间谍的背景

时间:2015-12-31 03:33:41

标签: jasmine

我在方法上安装了一个茉莉花间谍,就像

一样
if(typeof method === 'function'){
  var context = {a:'b'};
  method.call(context);
}

这样当调用方法时,其中的this关键字将是上下文。如何使用Jasmine测试间谍的上下文?

2 个答案:

答案 0 :(得分:1)

调用上下文位于每个调用对象的object属性中。

所以给出

var method = jasmine.createSpy();
var context = {a:'b'};
method.call(context);

你可以测试你的间谍方法的调用上下文:

mostRecentCall = method.calls.mostRecent();
expect(mostRecentCall.object).toEqual(context);

在茉莉花文档中查看here以获取更多示例。

答案 1 :(得分:0)

我喜欢Koen的答案,但我决定使用自定义匹配器以更优雅的方式做到这一点。这是lib https://www.npmjs.com/package/jasmine-spy-matchers

使用此lib,您可以执行以下操作:



expect(method).toHaveBeenCalledWithContext(context);