【发布时间】:2018-08-07 16:04:30
【问题描述】:
我正在尝试使用 Jest 测试我的 Mongoose 模型。我的模型如下所示:
const mongoose = require('mongoose');
const slug = require('slugs');
mongoose.Promise = global.Promise;
const cinemaSchema = new mongoose.Schema({
name: {
type: String,
trim: true,
required: 'Please enter a cinema name'
},
slug: String,
description: {
type: String,
trim: true
},
capacity: {
type: Number,
required: 'Please enter a capacity'
}
});
cinemaSchema.pre('save', function(next) {
if (!this.isModified('name')) {
next();
return
}
this.slug = slug(this.name);
next();
})
module.exports = mongoose.model('Cinema', cinemaSchema)
我在下面编写了一些测试,但是当我尝试运行它们并访问它们的结果时,我收到 undefined。我在这里使用.validate 函数,因为我不想真正访问我的数据库。
测试看起来像这样。我已经消除了期望,因为我只是想访问错误:
const mongoose = require('mongoose');
const Cinema = require('./Cinema');
describe('Cinema', () => {
it('Should return an error if a number is passed as the name', (done) => {
const cinema = new Cinema({name: 2, description: 'good', capacity: 1});
cinema.validate(response => {
console.log(response);
done();
});
})
})
知道为什么我在这里没有定义吗?
【问题讨论】:
标签: javascript mongoose jestjs