【问题标题】:How to mock an object using jest , object is from CDN link如何使用 jest 模拟对象,对象来自 CDN 链接
【发布时间】:2020-08-14 23:09:56
【问题描述】:
我设法在实际应用程序中使用来自 CDN 链接的对象(记录遥测数据),但不幸的是我的笑话测试失败了。如果我们只是在运行测试,有没有办法模拟这个对象,或者有没有办法跳过遥测代码(不要执行那些代码行)?
声明 const oneDS: any;
让 logger = new oneDS.ApplicationInsights(); // 在通常的应用程序中工作,但在开玩笑测试中失败
【问题讨论】:
标签:
reactjs
unit-testing
logging
mocking
jestjs
【解决方案1】:
只有以这种意图编写的代码才能被跳过,例如:
let logger;
if (process.env.NODE_ENV === 'production') {
logger = new oneDS.ApplicationInsights();
} else {
logger = /* dummy implementation */
}
它可以像任何其他全局变量一样在测试中被模拟:
beforeEach(() => {
global.oneDS = {
ApplicationInsights: jest.fn().mockReturnValue(/* dummy implementation */)
};
});