首页 > 解决方案 > 如何正确使用模拟函数

问题描述

我正在尝试使用 mocha 和 jest 编写单元测试。我正在尝试模拟 npm enquirer 模块,但出现错误,“TypeError:jest.mock 不是函数”。

测试.js

var enquirer = require('enquirer');
var module = require('../enq.js');
var assert = require('assert');
const jest = require('jest');


jest.mock('enquirer', () => jest.fn(() => {}));

describe('Module test', () => {
  test('user input', async () => {
    expect.assertions(1);
    enquirer.prompt = jest.fn().mockResolvedValue({ username: 'some@example.com' });

    await expect(module()).resolves.toEqual({ email: 'some@example.com' });
  });
});

enq.js

const { prompt } = require('enquirer');
 
module.exports = async function func() {
    const response = await prompt({
        type: 'input',
        name: 'username',
        message: 'What is your username?'
      });
       
      return response;
};

不知道我在这里做错了什么。

谢谢

标签: javascripttypescriptunit-testingjestjs

解决方案


推荐阅读