我如何获得所有承保?

问题描述

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

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函数。有没有办法开玩笑地了解所有代码行都在行使?请注意,“未发现的行号”是指_write函数的确切行号。我曾希望通过重新连接该功能可以使我的覆盖率达到100%。

enter image description here

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...