问题描述
我正在尝试为服务函数编写单元测试,该函数在运行时返回Pino日志消息。我已经通过 service.js 中使用的记录器模块,使用Sinon构建了一个存根,但是未能获得成功的测试。测试返回: AssertionError:预期错误已被精确调用过一次,但被调用0次
理想情况下,我希望能够断言记录器已被调用,并且该函数返回了确切的记录器调用和消息。
下面是一些我想要实现的示例代码
logger.js
const pino = require('pino');
const defaultLogger = pino({},'output.log');
module.exports = {
defaultLogger
}
service.js
const path = require('path');
const { defaultLogger } = require('../common/logger');
const logger = defaultLogger.child({ filename: path.basename(__filename) });
const logResponse = () => {
return logger.info('successful');
};
service.test.js
const sinon = require('sinon');
const chai = require('chai');
const sinonChai = require('sinon-chai');
const service = require('../service.js')
const { defaultLogger } = require('../common/logger');
const { expect } = chai;
chai.should();
chai.use(sinonChai);
describe('Service Test',() => {
it('should return a log message',() => {
const spy = sinon.spy(service,'logResponse')
const stub = sinon.stub(defaultLogger,'error');
spy.should.have.been.calledOnce;
expect(stub).to.have.been.calledOnce;
spy.should.have.returned(logger.info('successful'));
})
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)