Node.js console.log单元测试在mocha下失败,错误未知

Node.js console.log单元测试在mocha下失败,错误未知,node.js,unit-testing,mocha.js,console.log,sinon-chai,Node.js,Unit Testing,Mocha.js,Console.log,Sinon Chai,我的单元测试因以下代码而失败。当我运行测试时,我看到以下带有未知错误的结果。我不知道如何在console.log方法中测试第二个参数paylod Test console log() -----------|----------|----------|----------|----------|-------------------| File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s | ----

我的单元测试因以下代码而失败。当我运行测试时,我看到以下带有未知错误的结果。我不知道如何在console.log方法中测试第二个参数paylod

Test console log()
-----------|----------|----------|----------|----------|-------------------|
File       |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
-----------|----------|----------|----------|----------|-------------------|
All files  |    66.67 |      100 |        0 |    66.67 |                   |
 logger.js |    66.67 |      100 |        0 |    66.67 |                 6 |
-----------|----------|----------|----------|----------|-------------------|
npm ERR! Test failed.  See above for more details.

    //logger.js 
    'use strict';

    const log = (message, payload) => {
      console.log(message, JSON.stringify(payload, null, 2));
    };

    module.exports = { log };
    // log.test.js

    'use strict';

    const chai = require('chai');
    const sinon = require('sinon');
    chai.use(require('sinon-chai'));

    const { expect } = chai;
    const log = require('../../src/logger');

    describe('Test console log()', () => {
      it('should log value in console', () => {
        this.stub = sinon.stub(console, 'log');
        log('test invoked', { option: 1 });
      });
    });

看起来您只需要为
logger.js
解构您的
require

'use strict';

const sinon = require('sinon');

const { log } = require('../../src/logger');  // <= destructuring assignment

describe('Test console log()', () => {
  it('should log value in console', () => {
    const stub = sinon.stub(console, 'log');
    log('test invoked', { option: 1 });
    stub.restore();
    sinon.assert.calledWith(stub, 'test invoked', JSON.stringify({ option: 1 }, null, 2));  // Success!
  });
});
“严格使用”;
const sinon=要求(“sinon”);
const{log}=require('../../src/logger');//{
它('应在控制台中记录值',()=>{
const stub=sinon.stub(控制台,'log');
日志('testinvoked',{option:1});
stub.restore();
sinon.assert.calledWith(stub'test invoked',JSON.stringify({option:1},null,2));//成功!
});
});