我的文件夹结构:
├──wrapper.js
├──lib
| └──zwportal.js
├── __tests__
│ └── wrapper.test.js
── __mocks__
│ └── zwportal.js
|
在wrapper.js
中:
const portal = require('./lib/zwportal.js')
由于zwportal.js非常复杂,因此我在 mocks 文件夹中使用了一个模拟文件。所以在我的测试中:
'use strict';
// Mocking dependencies
jest.mock('../lib/zwportal.js');
zwportal = require('../lib/zwportal.js');
但是,当我跑步时:
jest
它说:
FAIL __tests__/wrapper.test.js
● Test suite failed to run
Cannot find module 'abstract-socket' from 'avro-utils.js'
实际上,这些文件abstract-socket
和avro-utils
在原始的“未模拟” zwportal.js
中。似乎笑话没有嘲笑此文件。为什么?
编辑
在我的测试套件中,如果我写:
jest.mock('../lib/zwportal.js', () => {});
zwportal = require('../lib/zwportal.js');
没有问题发生。但是,我需要以某种行为来模拟该模拟。
答案 0 :(得分:0)
手动模拟。例如,要在models目录中模拟名为user的模块,请创建一个名为user.js的文件,并将其放在models / mocks 目录中。
尝试将模拟目录移至lib目录