Я успешно использовал Knex для подключения к базе данных. Но я хочу, чтобы иметь возможность тестировать мой код. Есть ли способ обмануть соединение с базой данных?Как я могу издеваться над поддельной базой данных для тестирования модулей против Knex?
Я пробовал использовать proxyquire, но я не могу заставить его работать.
Проблема, похоже, связана с тем, как инициализируется Knex.
var knex = require('knex')({
client: 'mysql',
connection: {}
});
Я установил knex для издевательства в своем модульном тесте.
myService = proxyquire('../app/myService', {
'knex': knexProxy
});
Мое обслуживание включает в себя 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, и у меня такая же проблема. благодаря – jomaora