Насмешка над mariasql в Node.js

Я использую mariasql 0.2.6 в своем коде.

Ниже приведен пример кода:

var Client = require('mariasql');

var c = new Client();
  c.connect({
  host: '127.0.0.1',
  user: 'foo',
  password: 'bar',
  db: 'mydb'
});

function getData() {
  c.query('SELECT * FROM users where id = 2', (err, rows) => {
    if (err) {
      return error;
    } else {
      return rows;
    } 
  });
}

Теперь я пишу модульные тестовые примеры для этого метода, и я не уверен, как заглушить вызов БД.


person Shailesh Devadiga    schedule 20.06.2017    source источник
comment
Это довольно просто сделать. Либо вы используете внедрение зависимостей, чтобы переопределить используемую библиотеку mysql, либо вы используете шов ссылок для замены импортируемой библиотеки. См. этот ответ: stackoverflow.com/questions /44294170/ (проголосуйте, если полезно)   -  person oligofren    schedule 21.06.2017
comment
Я использовал sinon для метода подключения заглушки: it('stub db call', sinon.test(function (done) { this.stub(connect, 'query', (query, cb) => { cb('db operation failed' , нулевой); } });   -  person Shailesh Devadiga    schedule 23.06.2017