假设我想通过添加自己的特殊存根来扩展sinon:
我可以写:
sinon.specialStub = function() {
return this.stub().returns('SPECIAL');
};
或者,我可以使用sinon.extend编写类似以下内容的内容:
sinon.extend(sinon, {
specialStub: function() {
return this.stub().returns('SPECIAL');
}
});
基本相同。
一切都会按预期工作,但是用
var sandbox = sinon.sandbox.create();
调用此方法将失败。这是我能想到的唯一已知的解决方法:
var sandbox = sinon.extend(sinon.sandbox.create(), {
specialStub: function() {
return this.stub().returns('SPECIAL');
}
});
问题是-是否有人知道如何扩展sinon并在沙盒中看到那些扩展方法?
最佳答案
我知道的唯一方法是将方法添加到sinon.collection
。
sinon.collection.specialStub = function() { return this.stub().returns('Special'); }
var sandbox = sinon.sandbox.create();
console.log(sandbox.specialStub);
可能考虑让sinon的维护者发现它是否脆弱,因为它利用了他们认为是库内部的东西。
关于javascript - 如何使用自定义方法和字段扩展沙盒sinon,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26939466/