问题描述
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%。
解决方法
在我看来,您在模拟该测试的_write函数。在这种情况下,我不希望这些行运行。
您可以编写另一个实际上使用_write函数的测试。