jjzjj

javascript - 使用Sinon的Mongoose模型的 stub 保存实例方法

我正在尝试使用Mongoose模型测试用于保存小部件的服务功能。我想在我的模型上stub保存实例方法,但我想不出一个好的解决方案。我看过其他建议,但似乎都不完整。见...this,和this.这是我的模型...//widget.jsvarmongoose=require('mongoose');varwidgetSchema=mongoose.Schema({title:{type:String,default:''}});varWidget=mongoose.model('Widget',widgetSchema);module.exports=Widget;这是我的服务...//w

javascript - 使用 sinon.js 创建一个 "spy object"带有基于真实构造函数/原型(prototype)的 spy 方法

我使用sinon.js作为在我的Mocha测试中排除依赖项的一种方式。我更喜欢'spy'方法而不是经典的mock方法,因为spy的内省(introspection)似乎比经典的mock对象有点落后的想法更清晰,并且提供了更大的灵active。也就是说,我想知道在为整个对象创建测试spy时我是否使用不正确。假设我有一个测试依赖项,上面有4个方法,我想stub这些方法中的每一个,并对其中的一个或两个进行断言。目前我正在这样做:varspyObj={aMethod:sinon.spy(),otherMethod:sinon.spy(),whatever:sinon.spy()};然后我只问s

javascript - 使用 sinon.js 创建一个 "spy object"带有基于真实构造函数/原型(prototype)的 spy 方法

我使用sinon.js作为在我的Mocha测试中排除依赖项的一种方式。我更喜欢'spy'方法而不是经典的mock方法,因为spy的内省(introspection)似乎比经典的mock对象有点落后的想法更清晰,并且提供了更大的灵active。也就是说,我想知道在为整个对象创建测试spy时我是否使用不正确。假设我有一个测试依赖项,上面有4个方法,我想stub这些方法中的每一个,并对其中的一个或两个进行断言。目前我正在这样做:varspyObj={aMethod:sinon.spy(),otherMethod:sinon.spy(),whatever:sinon.spy()};然后我只问s

javascript - 使用 sinon 和 bluebird 对 Promisified 函数进行 Stub

在我要测试的文件中,我有以下代码:varhttpGet=Promise.promisify(require("request").get);httpGet(endpoint,{auth:{bearer:req.body.access_token},json:true}).then(...)现在,在我的测试中,我想确保httpGet被调用一次,并确保参数有效。在被promise之前,我的测试是这样的:beforeEach(function(){request.get=sinon.stub().yields(null,null,{error:"testerror",error_descri

javascript - 使用 sinon 和 bluebird 对 Promisified 函数进行 Stub

在我要测试的文件中,我有以下代码:varhttpGet=Promise.promisify(require("request").get);httpGet(endpoint,{auth:{bearer:req.body.access_token},json:true}).then(...)现在,在我的测试中,我想确保httpGet被调用一次,并确保参数有效。在被promise之前,我的测试是这样的:beforeEach(function(){request.get=sinon.stub().yields(null,null,{error:"testerror",error_descri

node.js - 使用 Sinon stub 链式 Mongoose 调用

我知道如何stubMongoose模型(感谢StubbingaMongoosemodelwithSinon),但我不太明白如何stub调用,例如:myModel.findOne({"id":someId}).where("someBooleanProperty").equals(true)....exec(someCallback);我尝试了以下方法:varfindOneStub=sinon.stub(mongoose.Model,"findOne");sinon.stub(findOneStub,"exec").yields(someFakeParameter);没有用,有什么建议吗

node.js - 使用 Sinon stub 链式 Mongoose 调用

我知道如何stubMongoose模型(感谢StubbingaMongoosemodelwithSinon),但我不太明白如何stub调用,例如:myModel.findOne({"id":someId}).where("someBooleanProperty").equals(true)....exec(someCallback);我尝试了以下方法:varfindOneStub=sinon.stub(mongoose.Model,"findOne");sinon.stub(findOneStub,"exec").yields(someFakeParameter);没有用,有什么建议吗

javascript - 在 sinon.js 中 stub 和/或模拟一个类?

我为我的应用程序创建了一个数据库包装器,如下所示。为了测试它,我显然想替换实际的数据库库。我可以创建一个模拟query方法的新类并在那里捕获所有输入,但使用sinon.js似乎更合适,但我将如何使用它呢?我应该使用sinon.js的mock或stub功能吗?wrapper=(function(){functionwrapper(){}wrapper.db=require("database");wrapper.prototype.insertUser=function(doc){returnthis.db.query("INSERTINTOUSERS...");};returnwrap

javascript - 在 sinon.js 中 stub 和/或模拟一个类?

我为我的应用程序创建了一个数据库包装器,如下所示。为了测试它,我显然想替换实际的数据库库。我可以创建一个模拟query方法的新类并在那里捕获所有输入,但使用sinon.js似乎更合适,但我将如何使用它呢?我应该使用sinon.js的mock或stub功能吗?wrapper=(function(){functionwrapper(){}wrapper.db=require("database");wrapper.prototype.insertUser=function(doc){returnthis.db.query("INSERTINTOUSERS...");};returnwrap

node.js - 使用 Sinon 对 Mongoose 模型进行 Stub

我想为特定模型中的Mongoosesave方法创建一个stub,以便我创建的模型的任何实例都将调用stub而不是普通的Mongoosesave方法。我的理解是,这样做的唯一方法是像这样对整个模型进行stub:varstub=sinon.stub(myModel.prototype);不幸的是,这行代码导致我的测试抛出以下错误:TypeError:Cannotreadproperty'states'ofundefined有人知道这里出了什么问题吗? 最佳答案 有两种方法可以做到这一点。第一个是varmongoose=require('