如何使用sinon.js监视预定义的对象
How to spy a predefined object with sinon.js
我正试图用sinon.js监视window.document。我所做的是:
var document = {
getElementById = function() {}
}
sinon.spy(document, "getElementById").withArgs("foo").returnValues = ["bar"];
我对这次通话的期望是:当使用参数"foo"调用document.getElementById时,函数必须返回"bar"。我的错误是什么?
如果我自己这样定义getElementById,我会得到预期的结果:
document.getElementById = function(param) {
if (param === "foo") return "bar";
}
您只能记录对函数的调用并检查是否调用了tey,但永远不能更改函数的行为。来自withArgs
:的文档
创建一个仅在收到参数时记录调用的间谍将传递给的与Args 匹配
你要找的码头是sinon.stub
:
sinon.stub(document, 'getElementById').withArgs('foo').returns(['bar'])
相关文章:
- 带有预定义网格的Packey JS
- SVG使用Javascript将形状平滑地变形为其他预定义的形状
- 如何在不预定义的情况下将javascript函数传递到另一个函数中
- 没有预定义宽度的固定元素最初放在引导容器中,不会从父元素继承宽度
- 用javascript为预定义对象设置原型
- AngularJS:如何按照预定义的顺序执行函数
- jqGrid - 如何通过自定义格式化程序提供多个预定义的格式化程序
- 如何使用预定义字符串列表“动态”生成 HTML 代码
- 使用预定义函数的NodeJS async.series
- 如何在HTML中用两个预定义的值绑定选择选项,以在mongodb中插入数据
- "未解析的变量或类型“;用于预定义对象
- 如何使用sinon.js监视预定义的对象
- ClipboardData()对象支持的预定义数据格式
- 使用字符串从父对象访问预定义的子对象
- 使用预定义的方法来更改对象的属性
- Angular是否有一个预定义的对象来存放所有当前的承诺?
- 是否有一个JavaScript程序可以列出所有预定义的浏览器主机对象
- 将对象存储到预定义数组中
- 如果对象键等于预定义的值,我如何附加json数据
- 将默认值返回到预定义的 JavaScript 对象