【发布时间】:2019-02-08 04:03:29
【问题描述】:
我有一个 Jest 测试文件,如下所示:
// utils.test.js
let utils = require('./utils')
jest.mock('./utils')
test('print items', () => {
utils.printItems(['a'])
expect(utils.getImage).toHaveBeenLastCalledWith('a.png')
})
test('get image', () => {
utils = require.requireActual('./utils')
// `utils` is still mocked here for some reason.
expect(utils.getImage('note.png')).toBe('note')
})
还有这样的模拟:
// __mocks__/utils.js
const utils = require.requireActual('../utils');
utils.getImage = jest.fn(() => 'abc');
module.exports = utils;
然而,正如您在我在第二个测试中的评论中看到的那样,utils 仍然是模拟版本,而不是模块的实际版本。这是为什么?我怎样才能让它成为实际版本,而不是模拟版本?
【问题讨论】:
-
jest.isMockFunction如果函数没有按照您期望的方式模拟,则有助于不运行测试
标签: javascript node.js unit-testing mocking jestjs