栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Sinon对Mongoose模型进行存根

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Sinon对Mongoose模型进行存根

我已经分析了猫鼬的来源,并且认为这是不可能的。保存功能不是在模型上定义的,而是由钩子npm动态生成的,该钩子启用了前/后中间件功能。

但是,您可以像这样存根保存在实例上:

page = new Page();sinon.stub(page, 'save', function(cb){ cb(null) })

更新:存根pageModel

首先,您需要

pageModel
通过将其设置为
Page
this.pageModel =xxx
)自己的属性来使其可访问。然后,您可以像下面所示的那样存根:

mongoose = require('mongoose');mongoose.connect('mongodb://localhost/test');mongoose.set('debug', true);schema = new mongoose.Schema({title: String});mongoose.model('Page', schema);var Page = function(db) {  var mongoose = db || require('mongoose');  if(!this instanceof Page) {    return new Page(db);  }  var PageSchema = mongoose.model('Page');  this.pageModel = new PageSchema();  function save(params, cb) {    console.log("page.save");    this.pageModel.set(params);    this.pageModel.save(function (err, product) {      console.log("pageModel.save");      cb(err, product);    });  }  Page.prototype.save = save;};page = new Page();sinon = require('sinon');sinon.stub(page.pageModel, 'save', function(cb){  cb("fake error", null);});page.save({ title: 'awesome' }, function (err, product) {  if(err) return console.log("ERROR:", err);  console.log("DONE");});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569043.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号