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
答
你需要调用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();
});
});
然后,与特定错误信息更新您的问题,我们可以进一步帮助您。
尝试通过增加误差函数中。然后(功能(用户){},函数(误差){ 的console.log( '错误') })打印错误 可以有多种原因。 –