0

我有一个节点模块,我正在尝试为其编写单元测试。这是模块的一部分:

function _write(level, message) {
    if (level <= _current) {
        message = message || "No message provided.";

        const consoleFn = consoleFunction[level];
        const logFn = console[consoleFn];

        logFn(`${levelPrefix[level]}: ${message}`);
    }
}

当我运行包括这个在内的测试时:

test('test writing to error log', () => {
    logger.__Rewire__('_write', function (level, message) {
        console.error(`ERROR: ${message}`);
    });
    const spy = jest.spyOn(logger, 'error');
    logger.error('error message');
    expect(spy).toHaveBeenCalledTimes(1);
});

但是,在运行测试之后,_write 函数似乎仍然没有出现在覆盖结果中。有没有办法让我们开玩笑地理解所有代码行都在练习?请注意,“Uncovered Line #s”指的是 _write 函数的确切行号。我曾希望通过重新连接该功能,这将使我的覆盖率达到 100%。

在此处输入图像描述

4

1 回答 1

0

在我看来,您正在模拟该测试的 _write 函数。我不希望这些行在这种情况下运行。

您可以编写另一个实际使用 _write 函数的测试。

于 2020-10-09T06:12:00.670 回答