我在开玩笑中尝试模拟类构造函数时遇到问题。
我有一些与此类似的代码,我想对捕获进行代码覆盖
try {
redis = new Redis(params);
}catch(err){
return reject(new Error());
}
我试图在单元测试中创建以便“新 Redis”抛出错误的模拟包括如下内容:
jest.mock('ioredis', () => {
return jest.fn().mockImplementation(() => {
return {
constructor: () => {
throw new Error();
},
};
});
});
文档似乎没有模拟构造函数的好例子。
答案 0 :(得分:0)
documentation 解释了如何模拟类。它不显示 constructor
方法,因为它在这些场景中无关紧要。在 JavaScript 中,constructor
是一个特殊的方法,通常等于构造函数本身,Class === Class.prototype.constructor
。 constructor
用于继承但通常不直接调用,因此在这种情况下嘲笑甚至提及它没有意义。它是被调用的构造函数,它应该被模拟:
jest.mock('ioredis', () => {
return jest.fn().mockImplementation(() => {
throw new Error();
});
});