在沙箱中恢复单个存根

Kar*_*son 7 javascript sinon

sandbox = sinon.sandbox.create();

sandbox.stub(db, 'query', () => {
    return Promise.resolve();
});

sandbox.stub(process, 'exit', () => { });
Run Code Online (Sandbox Code Playgroud)

sandbox.restore(); 删除所有存根。

我想删除一个存根,以便我可以重新存根。例如query存根。

这可能吗?我找不到这方面的任何信息。

pun*_*nov 7

您可以像这样恢复单个方法:

db.query.restore();
Run Code Online (Sandbox Code Playgroud)

对于您的特定情况。

每 sinon 文档:

var stub = sinon.stub(object, "method");

用存根函数替换 object.method。如果该属性还不是函数,则会引发异常。

可以通过调用 object.method.restore() 恢复原函数;(或 stub.restore();)。

http://sinonjs.org/releases/v2.3.6/stubs/