javascript - 如何使用 jest 模拟 node-redis

标签 javascript node.js jestjs node-redis

我正在使用 jest并试图模拟node-redis使用 redis-mock .

// redis.js

const redis = require("redis");
const client = redis.createClient({ host: '127.0.0.1', port: 6379 });

// redis.test.js

const redisMock = require("redis-mock");

describe("redis", () => {
  jest.doMock("redis", () => jest.fn(() => redisMock));
  const redis = require("./redis");
});
当我运行测试时,我得到一个错误

TypeError: redis.createClient is not a function


我觉得我在使用 jest.doMock() 时做错了什么.
将不胜感激您的帮助。

最佳答案

以下对我有用:

import redis from 'redis-mock'
jest.mock('redis', () => redis)

我不包括 redis测试中的库,但我只将它包含在包含测试类的文件中。 (当然,带有测试类的文件包含在测试文件中。)

关于javascript - 如何使用 jest 模拟 node-redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60541602/

相关文章:

javascript - HTML 元素作为 While 条件

javascript - 为什么我的 ASP.NET CORE React Redux 应用程序中的记录没有更新?

node.js - 在 mongo 脚本中打印对象

javascript - 使用javascript读取多个输入行

javascript - AWS 上的 Node js Web 应用程序无法查找无法在 View 目录 "pages/home"中查找 View "/var/app/views"

javascript - 无论如何都可以使用 javascript 找到广告加载时间

javascript - 替换所有图像的图像源

javascript - 既然 Enzyme 和 Jest 似乎在做同样的事情,为什么还要使用它们呢?

reactjs - 如何测试解决 promise 然后在 React 中更改状态的方法?

reactjs - 使用react-testing-library进行测试时可以手动触发状态更改吗?