javascript - 检查传递给我们监视的函数的参数的属性

标签 javascript jasmine

我试图弄清楚(尚未成功)是否可以检查我尝试用 spy On( Jasmine )模拟的js函数是否使用我期望的确切参数调用,例如考虑函数:

foo = function(date, array) {};

到目前为止,我只能确保数组确实是这样传递的:

spyOn(bar, 'foo').and.returnValue(somePromise.promise);
somePromise.resolve;
//call some function that calls 'foo' eventually...
expect(bar.foo).toHaveBeenCalledWith('10/12/2100', []);

我需要检查传递给该函数的数组是否为空,如何实现?另外,如果可能的话,如何检查传递给该函数的数组是否包含我想要的字符串?

谢谢!

最佳答案

and.returnValue 替换为 and.callFake,然后传入一个在返回 Promise 之前存储参数的函数。然后这些参数可以用于以后的期望测试。

关于javascript - 检查传递给我们监视的函数的参数的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24435455/

相关文章:

javascript - 使用纯 jQuery 即时替换 contenteditable 中的文本

angularjs - Jasmine + 使用 Typescript : TypeError: 'undefined' is not an object 进行 Angular 测试

javascript - 使用 Javascript Ajax 将较长的 html 发布到 ASP.NET 页面时找不到页面

angular - 类型错误 : Cannot read property 'get' of undefined (Fixed conflicting imports not working)

javascript - 因期望失败而停止当前 IT 中的执行,但继续 Jasmine 中的规范测试

javascript - 测试 AngularJS Controller 的初学者指南

javascript - 然后没有触发 Jasmine 的提取模拟

javascript - 如何使用 jQuery 交叉淡入淡出图像

javascript - 设置函数变量与使用对象字面量相同吗

javascript - 如何从 findOne() Mongoose 返回结果