Javascript 是否可以通过sinon.stub装饰功能

Javascript 是否可以通过sinon.stub装饰功能,javascript,unit-testing,sinon,Javascript,Unit Testing,Sinon,例如,我的对象如下所示: var obj = { someMethod: function() { // base functionality... } }; 在单元测试中,我想为obj.someMethod方法创建存根: var func = function() { // new functionality... }; var stub = sinon.stub(obj, "someMethod", func); func不应完全取代obj.som

例如,我的对象如下所示:

var obj = {
    someMethod: function() {
        // base functionality...
    }
};
在单元测试中,我想为
obj.someMethod
方法创建存根:

var func = function() {
    // new functionality...
};
var stub = sinon.stub(obj, "someMethod", func);
func
不应完全取代
obj.someMethod
。它应该装饰
对象someMethod
。目前,我使用以下方法:

var base = obj.someMethod;
var func = function() {
    base();
    // new functionality...
};
var stub = sinon.stub(obj, "someMethod", func);

sinon是否提供现成的相同功能?

不,它不提供。但很有可能你用了错误的方法,存根的全部目的是避免调用原始方法。你想测试什么?是的,在我描述的方法中,我感觉有些不好。)我只想测试一些js函数,但是我的代码中有一些气味。看起来,我需要重构它,然后像应该的那样使用存根。不,它没有。但很有可能你用了错误的方法,存根的全部目的是避免调用原始方法。你想测试什么?是的,在我描述的方法中,我感觉有些不好。)我只想测试一些js函数,但是我的代码中有一些气味。看起来,我需要重构它,然后像应该的那样使用存根。