Javascript sinon stub.restore和stub.reset之间有什么区别

Javascript sinon stub.restore和stub.reset之间有什么区别,javascript,testing,sinon,Javascript,Testing,Sinon,清理时,使用sinon创建存根后,您可以恢复或重置它。有人能给我解释一下这两者的区别吗?或者当您有以下代码时,何时使用还原和何时使用重置?: const stub = sinon.stub(object, "foo"); 原来的object.foo方法不见了。如果要还原它,可以执行object.foo.restore()或简单地执行stub.restore()作为快捷方式。换句话说,恢复对对象有影响 而stub.reset()会对stub本身产生影响,重置其行为和历史记录。(缓存数据,如已调用

清理时,使用sinon创建存根后,您可以恢复或重置它。有人能给我解释一下这两者的区别吗?或者当您有以下代码时,何时使用还原和何时使用重置?

const stub = sinon.stub(object, "foo");
原来的
object.foo
方法不见了。如果要还原它,可以执行
object.foo.restore()
或简单地执行
stub.restore()
作为快捷方式。换句话说,
恢复
对象
有影响


stub.reset()
会对
stub
本身产生影响,重置其行为和历史记录。(缓存数据,如已调用的次数、以前的调用…)

当您有以下代码时:

const stub = sinon.stub(object, "foo");
原来的
object.foo
方法不见了。如果要还原它,可以执行
object.foo.restore()
或简单地执行
stub.restore()
作为快捷方式。换句话说,
恢复
对象
有影响

stub.reset()
会对
stub
本身产生影响,重置其行为和历史记录。(缓存数据,如已调用的次数、以前的调用…)