【发布时间】:2015-03-25 17:57:09
【问题描述】:
我一直在使用Knex 成功连接到后端数据库。但我希望能够对我的代码进行单元测试。有没有办法模拟数据库连接?
我尝试过使用proxyquire,但似乎无法正常工作。
问题似乎出在 Knex 的初始化方式上。
var knex = require('knex')({
client: 'mysql',
connection: {}
});
我设置 knex 以在我的单元测试中进行模拟。
myService = proxyquire('../app/myService', {
'knex': knexProxy
});
我的服务包括 knex。
var knex = require('knex').knex,
当我的服务运行查询时,它会失败。
var sql = knex("table_name");
sql.insert(rowToInsert, "auto_increment_id");
sql.then(function (insertId) {
resolve();
}, function (err) {
reject(err);
});
由于某种原因,我似乎无法在它尝试连接之前捕获请求。
我也尝试过创建custom Knex Client,但也没有成功。
【问题讨论】:
-
你找到解决办法了吗?我正在与 Knex 合作,我遇到了同样的问题。谢谢
标签: javascript node.js unit-testing knex.js proxyquire