Я успешно использовал 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);
});
По какой-то причине я просто не могу перехватить запрос до того, как он попытается установить соединение.
Я также пытался создать пользовательский клиент Knex, но это тоже пока не сработало.