我如何确保在单元测试中一次调用log4j

时间:2018-12-24 02:30:07

标签: node.js unit-testing sinon

我正在使用sinon,nodejs。

如何确保在单元测试中一次调用log4j。

我收到此错误TypeError: Attempted to wrap undefined property info as function

main.js:

let log = require('log4js').getLogger("main");

...
personDao.updatePerson(param,
                (updatePerson) => updatePersonCallBack(updatePersonResult));
...

let updatePersonCallBack= exports.updatePersonCallBack= (result) => {
    log.info("SUCCESS", result)
}

main.spec.js:

it('updatePersonCallBack', (done) => {

        let getInfoSpy = sinon.spy(log, "info");

        let updatePersonResult= 1;

        main.updatePersonCallBack(updatePersonResult);
        should.equal(getInfoSpy.callCount, 1);

        done();
    });

1 个答案:

答案 0 :(得分:0)

您还需要导入/需要规格/测试文件中的日志,以便间谍将标识日志和信息作为其方法。由于未在规格/测试文件中声明日志,因此它将引发未定义的错误。