有効性テスト
2776 ワード
有効性ルールの追加
const UserSchema = new Schema({
name: String,
postCount: Number
});
≪ルールの追加|Add Rule|ldap≫:有効なユーザーには名前が必要です。
const UserSchema = new Schema({
name: {
type: String,
required: [true, 'Name is required.'] //
},
postCount: Number
});
ルール1の有効性テスト
testにvalidation_を追加するtest.jsファイル:
const assert = require('assert');
const User = require('../src/user');
describe('Validation records', () => {
it('requires a user name', () => {
const user = new User({name : undefined});
const validationResult = user.validateSync(); //validateSync() ,
// user.validate((validationResult) => {//validate() ,
// });
console.log(validationResult);
});
});
返される有効な情報はobjectと見なすことができるので、断言を使用するために必要な情報を取得します.
const assert = require('assert');
const User = require('../src/user');
describe('Validation records', () => {
it('requires a user name', (done) => {
const user = new User({name : undefined});
const validationResult = user.validateSync(); //validateSync() ,
// user.validate((validationResult) => {//validate() ,
// });
//console.log(validationResult);
const message = validationResult.errors.name.message;
console.log(message);
assert(message === 'Name is required.');
done();
});
});
validateを使用したルールの追加:名前は3文字以上
ユーザーを開くjsファイル:
validate: {
// validator , name
validator: (name) => name.length > 2,
// validator , message
message: 'Name must be longer than two charecters.'
},
ルール2の有効性テスト
validation_test.jsに新しいテストを追加します.
it('requires a user\'s name longer then two characters', (done) => {
const user = new User({name : 'Al'});
const validationResult = user.validateSync();
const {message} = validationResult.errors.name;
console.log(message);
assert(message === 'Name must be longer than two charecters.');
done();
});