javascript - 如何正确使用模拟函数
问题描述
我正在尝试使用 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;
};
不知道我在这里做错了什么。
谢谢
解决方案
推荐阅读
- amazon-web-services - 如何处理 Athena 中的一般内部错误
- php - preg_replace 与 preg_replace_callback
- mysql - grouping records by a field and submit a query on each group in sql
- python - 在 Windows 10 上安装外部库出错
- swift - 在 Swift 中使用 NSPredicate 的 Firebase Firestore 查询
- sql - 左连接与另一个查询以获得帖子的评论?
- python - django translation.activate() 接受什么语言格式?
- typescript - 尽管 while 循环使用变量,但没有未使用的变量错误
- android - Android Studio 无法添加图片或矢量资源
- python - 如何模拟 Moto 的 AccountId