有効性テスト

2776 ワード

有効性ルールの追加

  • 有効性ルールは、データベースに不要な情報を追加することを回避します.
  • 有効なユーザーには、
  • という名前が必要です.
  • 名前は3文字以上です.ユーザーを開くjsファイル:
  • 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();
    });