测试猫鼬模型所需的属性
Testing Mongoose model required properties
我最近开始使用 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 时,我必须为其提供一个包含非空或未定义的名称 属性 的对象?
谢谢
查看 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();
});
});
然后使用不同的名称值(null、undefined 等)或什至空对象(即没有名称的对象 属性)定义不同的测试。
我最近开始使用 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 时,我必须为其提供一个包含非空或未定义的名称 属性 的对象?
谢谢
查看 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();
});
});
然后使用不同的名称值(null、undefined 等)或什至空对象(即没有名称的对象 属性)定义不同的测试。