我已经在这个网站和网络上搜索了一段时间,但我找不到解决这个问题的方法。我正在尝试测试我的API的REST功能,但PUT测试似乎从未起作用。每次在mocha中运行测试时,我都会收到错误“Uncaughtassertionerror:expected[]toequal{objectData}”,其中objectData是我尝试发布的对象(名为couponTwo)的json表示形式。我感觉问题出在beforeEach函数上,因为它会在每次测试前清除数据库,而许多其他测试需要执行此操作才能正确运行。这是测试代码:varconfig=require('../config/config');var
我正在使用Mongoose在Node.js、Express和MongoDB中构建网络应用程序。当我用Grunt运行我的Mocha测试时,我想有一个专用的数据库,这样我就不会弄乱我用于开发的数据库。我该怎么做?我目前在/config/db.js的文件中有我的开发数据库配置信息,该文件在启动时加载并连接到我的app.js文件中的开发数据库。我如何让在Grunt任务中运行的Mocha测试在运行Grunt时动态使用测试数据库?我试图在我的Mocha测试文件中的before()Hook中与我的测试文件中的开发数据库断开连接,然后连接到测试数据库。但是,它继续使用开发数据库。示例如下:before
感觉很迷茫,怎么在mocha中单元测试涉及到mongodb,我还是不能成功调用save函数,没有异常抛出。我尝试用最简单的例子进行测试,发现还是有问题,这是我的代码。varassert=require("assert")varmongoose=require('mongoose');mongoose.connect('mongodb://localhost/dev',function(err){if(err)throwerr});describe('incrementId',function(){describe('increment',function(){it('shouldhas
到目前为止,我有一个执行'mongod--dbpathdb'的child_process和另一个可以用'mongod--dbpathdb--shutdown'杀死它的child_process。如何监听用户输入ctrl-c或退出gulprunner,然后运行gulp任务关闭mongo? 最佳答案 我正在尝试类似的东西并遇到了thisanswer.我对它进行了一些重构,使其成为运行命令功能。从功能上讲,--shutdown和我正在使用的命令之间应该没有区别。vargulp=require('gulp');varexec=requi
我对使用Mongoose对ExpressRESTAPI进行单元测试感到很困惑。我听说过supertest、sinon、chai和mocha。我想编写测试:1)测试API接口(interface):创建一个super测试服务器并向其发出请求(例如GET/users、POST/users)并检查它是否调用了正确的路由。2)测试Mongoose查询:当路由被调用时,我想检查是否调用了正确的mongoose函数(find,findById)并且它返回了正确的数据(假数据),比如:当调用User.findId时,返回假用户(在beforeEach中定义的数据)。这是sinonstub的用途吗?3
我已经开始使用mocha,但我遇到了一个特定测试用例的问题。这是代码:varassert=require("chai").assert;varrequest=require('supertest');varhttp=require("http");varconf=require("../config/config");varapp=require("../app");varmongoose=require('mongoose');varUser=mongoose.model('User');describe('Usercontroller',function(){describe('P
我有一个node.js+express网络服务器,我正在使用Mocha进行测试。我在测试工具中启动Web服务器,并连接到mongodb以查找输出:describe("Api",function(){before(function(done){//startserverusingfunctionexportedfromanotherjsfile//connecttomongodb});after(function(done){//shutdownserver//closemongoconnection});beforeEach(function(done){//emptymongocol
我在mocha的某个地方声明为:assert.equal(model.organizationId,objId);但我得到失败的mocha结果:UncaughtAssertionError:"5225777180a843d901000012"=="5225777180a843d901000012"为什么会发生,当ID相同时。如何克服它? 最佳答案 所以在这方面,javascript中的mongodbObjectIds令人沮丧。它们是不同的对象,导致obj1===obj2评估为false,即使它们表示的值相同。有3个选项:在比较之前转
如何在mocha和mongoDB中使用chai向Node发出POST请求。我有一个包含我的获取请求和发布请求的测试文件。我下面的代码等于我的get请求,它通过了我为其设置的1次测试,但是我在创建我的发布请求时遇到了问题,我不明白我应该做什么。获取请求:constchai=require('chai');constexpect=chai.expect;constchaiHttp=require('chai-http')chai.use(chaiHttp)describe('site',()=>{//Describewhatyouaretestingit('Shouldhavehomepa
我想在mysql数据库上测试CRUD操作,使用Sequelize作为ORM和Mocha/Chai进行单元测试。我使用http路由测试了记录的插入/删除,但我会直接测试模型而不使用任何http连接。我尝试这样做,但是当我启动测试时,没有添加记录并且我没有收到任何错误。app/model/article.jsmodule.exports=function(sequelize,DataTypes){varArticle=sequelize.define('Article',{title:DataTypes.STRING,url:DataTypes.STRING,text:DataTypes.