【发布时间】:2018-02-27 00:10:30
【问题描述】:
我已经成功测试了使用 node.js 构建的 API 端点,但仍然不知道如何测试这种“非异步”代码。
/**
* Database service
*/
// Dependencies
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(module.filename);
let db = {};
// Connection
let sequelize = new Sequelize(process.env.DATABASE_URL, {logging: false});
// Models processing
fs
.readdirSync(__dirname)
.filter(file =>
(file.indexOf('.') !== 0) &&
(file !== basename) &&
(file.slice(-3) === '.js'))
.forEach(file => {
/* uncovered */ const model = sequelize.import(path.join(__dirname, file));
/* uncovered */ db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
/* uncovered */ if (db[modelName].associate) {
/* uncovered */ db[modelName].associate(db);
/* uncovered */ }
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
// Export everything
module.exports = db;
这只是加载我所有 Sequelize 模型(.js 文件)并创建关联的代码的简单部分。
在使用 istanbul、mocha 和 chai 进行测试时,我可以全面覆盖我的 API 函数,但无法覆盖此代码。
我应该如何测试这个?
【问题讨论】:
标签: node.js mocha.js sequelize.js chai istanbul