美文网首页
有效性测试

有效性测试

作者: 黑山老水 | 来源:发表于2017-09-13 10:13 被阅读137次

    添加有效性规则

    • 有效性规则可以避免我们向数据库中添加无用的信息:
    1. 有效的用户必须有名字
    2. 名字不少于3个字符。
      打开user.js文件:
    const UserSchema = new Schema({
                                  name: String,
                                  postCount: Number
    });
    

    添加规则:有效的用户必须有名字

    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个字符

    打开user.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();
    });
    

    相关文章

      网友评论

          本文标题:有效性测试

          本文链接:https://www.haomeiwen.com/subject/bzkksxtx.html