[英]Matching an argument with a function in Jasmine
我想对传递给监视函数调用的参数执行自定义断言。 我可以提供一个回调,以便在针对参数的预期中使用吗?
expect(my.method).toHaveBeenCalledWith(jasmine.argumentMatching(myCustomCallback), jasmine.any({}));
... 其中jasmine.argumentMatching(myCustomCallback)
是伪代码。
Jasmine spy 有一个属性.calls
,它提供有关调用次数、特定调用参数等的信息。请查看此文档部分 - 其他跟踪属性。 这取决于您的要求,您将使用哪一种,并且在文档中对其进行了很好的描述,但总的来说:
.calls.argsFor(n)
- 返回第 n 次调用的参数数组
.calls.allArgs()
- 返回所有调用的参数数组
.calls.mostRecent()
, .calls.first()
- 以形式返回一个对象:
{ object: my, args: ['foo', 42], returnValue: undefined }
.calls.all()
- 返回对象数组(如上面的一个)
一般来说,它看起来像:
spyOn(my, 'method');
my.method('foo', 42);
expect(my.method.calls.argsFor(0)).toEqual(['foo', 42]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.