gpt4 book ai didi

node.js - 使用 Chai 和 Mocha 对 Mongoose 模型进行单元测试

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:59 26 4
gpt4 key购买 nike

我正在尝试使用 Mocha 和 Chai 在我的 Nodejs 应用程序上运行单元测试。我正在使用 Mongodb 和 Mongoose 框架。这是我的 Student.model.js

var mongoose = require('mongoose')
var studentsSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: {
type: String,
required: true
},
email: String,
phone: Number,
address: String,
username: String,
password: String
});


var Students = mongoose.model('Student', studentsSchema);


module.exports = Students;

这是我的 Student.model.test.js

let assert = require('chai').assert;
var expect = require('chai').expect;
var mongoose = require('mongoose');
var Students = require('../models/students.model');

describe ('Student',function(){

before(function (done) {
mongoose.connect('mongodb://localhost/mongoose_basics');
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error'));
db.once('open', function() {
console.log('We are connected to test database!');
done();
});
});

it('student works!',function(){
var s = new Students({name:'krishna'});

s.save(err => {
if(err) { return done(); }
throw new Error('Should generate error!');
});

});
after(function(done){
mongoose.connection.db.dropDatabase(function(){
mongoose.connection.close(done);
});
});

});

我想使用 Mocha 和 Chai 运行单元测试。当我运行 mocha Student.model.test.js 时,出现以下错误

TypeError: Students is not a constructor

我不确定为什么它不返回构造函数。

最佳答案

问题在于 require 语句仅导入与您的模型相关的函数,因此如果您想获取模型,请尝试以下语句:

var Students = require('../models/students.model').Students;

关于node.js - 使用 Chai 和 Mocha 对 Mongoose 模型进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51465519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com