Используя 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');
   })
})

0 ответов

Другие вопросы по тегам