sequelize不插入到数据库,(sequelize,的NodeJS,摩卡,柴)

sequelize不插入到数据库,(sequelize,的NodeJS,摩卡,柴)

问题描述:

我使用sequelize ORM与节点 js和努力使用摩卡测试用例编写创建数据库新纪录一个,测试用例获取执行及以下的代码,并提出了sequelize不插入到数据库,(sequelize,的NodeJS,摩卡,柴)

没有插入到数据库 我期待在数据库中的新记录,但它不是插入

const app = require('../../app'); 
const chai = require('chai'); 
const should = chai.should(); 
const expect = chai.expect(); 
const models = require('../../app/models/index'); 
const User = models.User; 
let assert = chai.assert; 

describe('Model:User - attribute: password_digest - unit tests',() => { 
    it('password_digest should not be empty', (done) => { 
    console.log('>>>1'); 
    console.log(User.create); 
    User.create({ 
     email: '[email protected]', 
     password: 'aa', 
     password_confirmation: 'aa', 
     role_id: 'User', 
     profile_id: 'Consultant' 
    }).then(function(user) { 
     console.log('>>>2'); 
     console.log(user); 
    }); 
    console.log('>>>3'); 
    done(); 
    }); 
}); 


Model:User - attribute: password_digest - unit tests 
test_1   | >>>1 
test_1   | [Function] 
test_1   | >>>3 
test_1   |  Γ£ô password_digest should not be empty 
+1

尝试通过增加误差函数中。然后(功能(用户){},函数(误差){ 的console.log( '错误') })打印错误 可以有多种原因。 –

你需要调用done()两个自己的诺言处理,只有有:已达成的分支(then),所以你等待无极告诉摩卡测试结束前解决,同时也捕捉任何错误(分支机构catch)。所以,你的代码可能是:致电User.create所以你不给时间到数据库执行插入之后

it('password_digest should not be empty', (done) => { 
    User.create({ 
     email: '[email protected]', 
     password: 'aa', 
     password_confirmation: 'aa', 
     role_id: 'User', 
     profile_id: 'Consultant' 
    }) 
    .then(function(user) { 
     // your user assertions 
     console.log(user); 
     done(); 
    }).catch(done); 
    }); 

你测试的当前版本调用done()

同时使用done作为您的catch处理程序可确保承诺链中的任何错误都不会阻止您的测试完成,并有助于为您打印错误。用任何值调用done()都会将测试标记为失败。

你的承诺大概是失败了。您需要可以检查你的错误日志,找出这是怎么回事,或者处理您承诺的失败案例,喜欢的东西:

describe('Model:User - attribute: password_digest - unit tests',() => { 
    it('password_digest should not be empty', (done) => { 
    console.log('>>>1'); 
    console.log(User.create); 
    User.create({ 
     email: '[email protected]', 
     password: 'aa', 
     password_confirmation: 'aa', 
     role_id: 'User', 
     profile_id: 'Consultant' 
    }).then(function(user) { 
     console.log('>>>2'); 
     console.log(user); 
    }).catch(function(err) { 
     // Ideally, every time you handle the success of a promise 
     // with `then`, you should also handle the possible failure 
     // of it with `catch` 
     console.log('Error inserting user:'); 
     console.log(err); 
    }); 
    console.log('>>>3'); 
    done(); 
    }); 
}); 

然后,与特定错误信息更新您的问题,我们可以进一步帮助您。