Я работал над этим со следующим:
const mockReq = require('mock-require);
...
let infoStub = sinon.stub();
let warnStub = sinon.stub();
logStubs = {
info: infoStub,
warn: warnStub
// any other log methods you wish to use
};
mockReq('bunyan', {
createLogger() {
return logStubs;
}
});
...
Затем я использовал функцию mockReq.reRequire () для сброса кеша службы, которую я хотел смоделировать.
Чтобы подтвердить фактическое содержание журналов:
let infoLog = infoStub.firstCall.args[0];
let warnLog = warnStub.firstCall.args[0];
С этим я могу утверждать, что они равны тому, что я ожидал.