繁体   English   中英

将参数与 Jasmine 中的函数匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM