gpt4 book ai didi

javascript - 如何使用 sinon.js 监视预定义对象

转载 作者:行者123 更新时间:2023-11-29 10:18:07 24 4
gpt4 key购买 nike

我正在尝试用 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";
}

最佳答案

您只能记录对函数的调用并检查它们是否被调用,但绝不能更改函数的行为。来自 withArgs 的文档:

Creates a spy that only records calls when the received arguments matche those passed to withArgs

你正在寻找的是一个sinon.stub:

sinon.stub(document, 'getElementById').withArgs('foo').returns(['bar'])

关于javascript - 如何使用 sinon.js 监视预定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com