假设我想通过添加我自己的特殊存根来扩展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并在沙箱中查看那些扩展方法?
答案 0 :(得分:1)
我知道的唯一方法是将方法添加到sinon.collection
。
sinon.collection.specialStub = function() { return this.stub().returns('Special'); }
var sandbox = sinon.sandbox.create();
console.log(sandbox.specialStub);
可能会考虑让sinon的维护者知道这是否很脆弱,因为它会利用他们认为是图书馆内部的东西。