在类型记录中,我有下面的IoRedis实例化。
import IoRedis from "ioredis";
const redis = new IoRedis({
...
});在测试类中以下列方式进行嘲弄时。决定和ioredis-mock一起解决这个问题。
var IoRedis = require('ioredis-mock');
var ioRedis = new IoRedis({
data: {
...
},
});
jest.mock('ioredis', ioRedis);这会导致一个错误。
TypeError: this._mockFactories.get(...) is not a function我尝试过模拟ioredis的替代调用,但是很难将模拟的测试版本绑定到代码中正在解析的那个版本。主要而言,我认为new IoRedis是罪魁祸首,但我的javascript经验不足以知道用哪种方式来模拟导入/需求,然后是new关键字。
发布于 2021-05-01 18:24:54
基于ES-6级模拟,我发现了一种可以在类上模拟构造函数的方法。
var IoRedis = require('ioredis-mock');
var ioRedis = new IoRedis({
data: {
cacheKey: cacheData
},
});
jest.mock('ioredis', () => {
return function () {
return ioRedis
};
});这个片段可以用来模拟ioredis,我在文档或Stackoverflow中都找不到它。
发布于 2022-08-22 11:58:03
我在用:
const RedisMock = require('ioredis-mock');
jest.mock('ioredis', () => jest.requireActual('ioredis-mock'));
const redis = new RedisMock({
port: <same as in production>,
host : <same as in production>,
data: { 'Key:1': [JSON.stringify({"state":"INITIAL","recordingError":null})] ,
'Key:2': [JSON.stringify({"JSONVersionId":"1.0","agentTack":"11ebd1d4})] ,
}
});https://stackoverflow.com/questions/67346824
复制相似问题