Используя testdouble, я хочу заменить зависимость
В моем коде я использую библиотеку . Чтобы ускорить процесс тестирования, я хотел бы заменить библиотеку фальшивой зависимостью, используяtestdouble
.
Чтобы проверить создание моей поддельной зависимости, я заменил функциональностьsign
метод, чтобы просто вернуть базовую строку. Однако я заметил, что он не работает и все еще работает с оригиналом.jsonwebtoken
метод.
Что я здесь делаю неправильно?
main.js
const jwt = require('jsonwebtoken');
const signHere = (id) => {
const token = jwt.sign({ id }, 'fakesignature');
return token;
}
module.exports = { signHere }
unit.test.js
const { expect } = require('chai');
const td = require('testdouble');
describe('Replace the jsonwebtoken library', function () {
let subject;
before(function () {
subject = require('./main.js');
const fakeJWT = td.replace('jsonwebtoken');
fakeJWT.sign = td.function();
td.when(fakeJWT.sign(td.matchers.anything, td.matchers.anything)).thenReturn('test');
})
it('should replace the return value', function() {
const value = subject.signHere(1);
expect(value).to.equal('test');
})
})