为什么在使用笑话testing节点应用程序时看不到控制台日志输出

我是新玩笑testing,我似乎无法看到模块我想testing的控制台输出。

我-module.js:

var _ = require('underscore'); exports.filter = function(data) { if(_.isArray(data)) { console.log("Data is: " + data); data = data[0]; } return data; } 

我的模块,test.js:

 jest.dontMock('../my-module'); var testdata = [{label: "test"}, {id: 5}]; describe('test my module', function(){ it('changes some data' , function(){ var transformedData = require('../my-module').filter(testdata); expect(transformedData).toBe(testdata[0]); }); }); 

为什么在“my-module.js”中input我的console.log输出?

Jest似乎在默认情况下模拟了一切。 这是我遇到的问题。

下划线“_”被嘲笑,并没有可见的错误,所以执行从来没有得到console.log首先。

有三种可能性(就我所知)来防止这种情况:

  1. 在你的package.json文件中,防止模拟节点模块(包括下划线)

    "jest": { "unmockedModulePathPatterns": ["/node_modules/"] }

  2. 使用以下命令显式地防止testing文件中的自动模拟:

    jest.autoMockOff();

  3. 明确排除下划线嘲笑:

    jest.unmock('underscore');