我最近开始使用node.js,express和mongoose开发应用程序。我决定使用mocha作为测试框架,并且想知道如何对mongoose.model属性进行单元测试以确定其有效性。
所以,如果我有一个这样定义的模型:
var userSchema = new Schema({
name: {type: String, required: true}
});
var userModel = new mongoose.model('User', userSchema);
我假设声明“require:true”表示必须定义userSchema.name而不是null。
如何测试当我实例化userModel时,我必须为它提供一个包含name属性的对象,该属性不是null或未定义?
由于
答案 0 :(得分:1)
检查Mockgoose是否使用mongoose模型编写单元测试,而无需运行mongodb实例。
你可以写一个像这样的简单测试:
var mongoose = require('mongoose'),
mockgoose = require('mockgoose');
mockgoose(mongoose);
var Schema = mongoose.Schema;
var SimpleSchema = new Schema({
name: {
type: String,
required: true
}
});
mongoose.model('SimpleModel', SimpleSchema);
it('fails to save document with missing name', function(done) {
var simpleModel = new SimpleModel({
name: undefined
});
simpleModel.save(function(err) {
should.exist(err);
done();
});
});
然后使用不同的name(null,undefined等)或甚至是空对象(即没有name属性的对象)定义不同的测试。