Javascript Sails/Waterline:如何存根模型的实例函数?

Javascript Sails/Waterline:如何存根模型的实例函数?,javascript,node.js,model,sails.js,waterline,Javascript,Node.js,Model,Sails.js,Waterline,我们的模型上有一些实例函数,我们可以很好地测试它们。但是,当尝试测试加载waterline实例然后调用实例函数的不同函数时,我们希望对实例函数的调用进行存根 例如,我们尝试进行单元测试的函数可能如下所示: testFunction: function (id, cb) { Model.findOne(id, function (err, model) { model.instanceFunction(); cb(null, model); }); } 我想存根model

我们的模型上有一些实例函数,我们可以很好地测试它们。但是,当尝试测试加载waterline实例然后调用实例函数的不同函数时,我们希望对实例函数的调用进行存根

例如,我们尝试进行单元测试的函数可能如下所示:

testFunction: function (id, cb) {
  Model.findOne(id, function (err, model) {
    model.instanceFunction();
    cb(null, model);
  });
}
我想存根
model.instanceFunction
,但不知道如何做<代码>模型。原型似乎根本不存在。我可以存根
模型。_instanceMethods
,但实例函数实际上不是模型实例上的函数,因此这不起作用


有什么办法吗?

请使用sinon.js等测试工具。您只需这样编写代码,sinon.stub(Model,'instanceFunction',function(){//do as You like})我们正在使用sinon.js,但您描述的是stub类函数的过程,而不是实例函数。我们需要存根实例函数,它们是从
find
或类似内容返回的waterline对象的成员。非常抱歉,通过阅读,/waterline/lib/waterline/core/index.jsNo problem,我误解了并理解了您遇到的困难。你最后的评论为我指明了正确的方向。我们必须深入研究,但希望有什么东西能让它成为可能。从来没有找到一个很好的解决办法。我们只是开始截取返回实例的waterline函数。因此,在上面的示例中,我们在
Model.findOne
上存根,以返回一个已经存根的对象。不一定理想,但能完成工作