草庐IT

sinon-mongoose

全部标签

javascript - 使用 mongoose 在 node.js 上进行单元测试的结构

几个月来我一直在使用node.js进行开发,但现在我开始了一个新项目,我想知道如何构建应用程序。当谈到单元测试时,我的问题就来了。我将使用nodeunit编写单元测试。我还使用express来定义我的REST路由。我正在考虑在两个“单独的”文件中编写访问数据库的代码(显然,它们会更多,但我只是想简化代码)。会有路由代码。varmongoose=require('mongoose'),itemsService=require('./../../lib/services/items-service');//GET'/items'exports.list=function(req,res){

javascript - 在 Node.js 中使用 Sinon.js 模拟 Postgres 进行单元测试

我无法理解如何使用sinon来模拟对postgres的调用,这是我正在测试的模块所需要的,或者如果它可能的话。我并不是要测试postgres模块本身,只是我的目标是确保它按预期工作,并且它正在调用它在这种情况下应该调用的内容。我想问题是需要设置Node,因为我的模块需要postgres模块来访问数据库,但在这里我不想运行集成测试我只是想确保我的代码正常工作孤立地,并不真正关心数据库在做什么,我会把它留给我的集成测试。我看到有些人将他们的函数设置为具有可选参数以将mock/stub/fake发送到函数,测试它是否存在以及是否在所需模块上使用它,但这看起来像是闻到我的味道(我是Node的新

javascript - 用 sinon stub 一个原型(prototype)方法

假设我有以下方法:Controller.prototype.refresh=function(){console.log('refreshing');}Controller.prototype.delete=function(object){varself=this;object.delete({id:object.id},function(){self.refresh();});}现在在我的(mocha)测试中:beforeEach(function(){varcontroller=newController();varproto=controller.__proto__;varob

javascript - Underscore 的 Mongoose 对象的克隆和删除属性不起作用?

我正在使用Mongoose,我想在将JSON响应发送到客户端之前从我的Mongoose实例中删除_id属性。例子:varui=_.clone(userInvite);deleteui["_id"];console.log(JSON.stringify(ui));//stillhas"_id"property,why?之前的没用。但是,如果我这样做:varui=JSON.parse(JSON.stringify(userInvite));//poorman'sclonedeleteui["_id"];console.log(JSON.stringify(ui));//"_id"isgon

javascript - 使用 Sinon 测试 JavaScript 点击事件

我正在尝试进行一些测试,以便能够更好地理解如何结合使用Mocha、Chai、Sinon和jQuery来测试DOM事件。我想检查单击div元素时是否正确触发了警报功能。我知道HTML元素的设置是正确的jQuery,但我不完全确定如何为下面的代码生成通过测试。特别奇怪的是,在我的浏览器中打开HTML文件时出现一个对话框,所以我知道行'$('#thingy').trigger('click')'正在做我期望的事情。我目前收到以下消息,'TypeError:objectisnotafunction'我的测试文件tests.js中的相关部分describe('DOMtests-divelemen

javascript - Mongoose : Inserting JS object directly into db

好的,我有一个通过AJAX发布到nodejs后端的JS对象。我想将这个js对象直接插入到我的Mongoose数据库中,因为对象键已经与数据库模式完美匹配。我目前有这个(不是动态的并且过于复杂):app.post('/items/submit/new-item',function(req,res){varformContents=req.body.formContents,itemModel=db.model('item'),newitem=newitemModel();newitem.item_ID="";newitem.item_title=formContents.item_tit

javascript - Sinon.JS - 如何从 stub 中获取参数?

我正在尝试使用Sinon来测试一个看起来有点像这样的JS组件......importBootboxfrom"../helpers/bootbox";importGuardfrom"../helpers/guard";importUrlHelperfrom"../helpers/url-helper";exportdefaultclassDeleteButton{/***CreatesaninstanceofDeleteButton.**@param{object}elementTheDOMelementtomakeintoadeletebutton.**@memberOfDeleteB

javascript - 使用 sinon spy restore 或 reset 的正确方法是什么?

我有一套带有mocha、sinon和chai的测试服:describe('generalvisormethodstests',()=>{letres,req,next,resSpy,resNext;beforeEach(()=>{res={};next=()=>{};resSpy=res.json=sinon.spy();resNext=next=sinon.spy();});afterEach(()=>{resSpy.restore();resNext.reset();});describe('getbasemaplayersfromownermodel',()=>{it('shou

javascript - 如何在 mongoose (node.js) 中为产品系统定义不同的属性

我正在构建一个个人商店应用程序,用户可以在其中相互销售商品,但我很难弄清楚如何管理这些产品。例如,如果你想卖一件T恤,你应该可以选择尺码和颜色等。但如果你卖一台电脑,你应该指定年份、CPU功率等。所有产品都有标题、价格、图片等上,但是您将如何处理不同的属性?我正在为对象使用mongodb。我在考虑有一个字段attributes,它应该是一个具有不同细节的对象,然后有一个字段type来定义存在的属性。如果type='Computer那么我会知道attributes看起来像这样。attributes:{capacity:1000//gbram:4096//MB}等等在普通的面向对象设计中,

javascript - 如何在 Mongoose 中构建条件查询?

以下代码适用于无查询字符串或仅适用于一个查询字符串。换句话说,只需转到/characters即可返回所有字符。但是,如果您要指定查询字符串参数/characters?gender=male,它将仅返回男性字符。我如何扩展它以使用1、2、3或无查询字符串?我真的希望避免为每个案例编写8或9个不同的if语句。我希望Mongoose会简单地忽略$where子句,如果它是null或undefined,但事实并非如此(请参阅注释掉的代码).vargender=req.query.gender;varrace=req.query.race;varbloodline=req.query.bloodl