gpt4 book ai didi

javascript - 使用 Mocha 和 Sequelize 测试模型

转载 作者:可可西里 更新时间:2023-11-01 08:03:18 26 4
gpt4 key购买 nike

我想在 mysql 数据库上测试 CRUD 操作,使用 Sequelize 作为 ORM 和 Mocha/Chai 进行单元测试。我使用 http 路由测试了记录的插入/删除,但我会直接测试模型而不使用任何 http 连接。我尝试这样做,但是当我启动测试时,没有添加记录并且我没有收到任何错误。

app/model/article.js

  module.exports = function (sequelize, DataTypes) {

var Article = sequelize.define('Article', {
title: DataTypes.STRING,
url: DataTypes.STRING,
text: DataTypes.STRING
}, {
classMethods: {
associate: function (models) {
// example on how to add relations
// Article.hasMany(models.Comments);
}
}
});

return Article;
};

app/model/index.js

var fs = require('fs'),
path = require('path'),
Sequelize = require('sequelize'),
config = require('../../config/config'),
db = {};

var sequelize = new Sequelize(config.db);

fs.readdirSync(__dirname).filter(function (file) {
return (file.indexOf('.') !== 0) && (file !== 'index.js');
}).forEach(function (file) {
var model = sequelize['import'](path.join(__dirname, file));
db[model.name] = model;
});

Object.keys(db).forEach(function (modelName) {
if ('associate' in db[modelName]) {
db[modelName].associate(db);
}
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

测试/模型/article.js

'use strict';

var expect = require('chai').expect;

var db = require('../../../app/models');
var Article = db.Article;

describe('article', function () {
it('should load', function (done) {
Article.create({
title: 'Titolo',
url: 'URL',
text: 'TEXT'
});
done();
});
});

最佳答案

使用异步或 promise 来确保操作完成。

describe('article', function () {
it('should load', function (done) {
Article.create({
title: 'Titolo',
url: 'URL',
text: 'TEXT'
}).then( function (article) {
// do some tests on article here
done();
});
});
});

关于javascript - 使用 Mocha 和 Sequelize 测试模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com