遇到的小坑
1.在引入测试的组件时,有时候我们的组件是以一个高阶的组件的形式导出的,而在我们测试的时候,我们只需要测试这个组件本身,不需要引入这个组件的封装体进行测试。
比如我们的组件A.js如下
class A extends Component{
//....
}
export default HOC(A);
此时我们需要在对A.js进行如下更改
export class A extends Component{
//...
}
export default HOC(A)
也就是加了一个export, 将A单独导出
同时在测试文件A.test.js中, 导入A
import { A } from 'A.js';
如此我们在A.test.js中拿到的就是一个完整的A组件而不是HOC封装的一个高阶A组件
2.component中引入了echart, 在进行测试时会提示报错
在引入echart时,需要对echart的getInstanceByDom方法进行模拟
beforeAll(()=>{
spy = jest.spyOn(echarts, 'getInstanceByDom').mockImplementation(() => {
return {
hideLoading: jest.fn(),
setOption: jest.fn(),
showLoading: jest.fn(),
clear: jest.fn(),
resize: jest.fn(),
on: jest.fn(),
}
})
})
afterAll(() => {
spy.mockRestore()
}

本文介绍了在使用React、Jest和Enzyme进行组件测试时可能遇到的问题及解决方案。包括如何处理高阶组件(HOC)的测试,解决Echarts引入导致的错误,以及在组件中使用ref引发的测试问题。通过添加单独的export导出组件,模拟Echarts方法,以及手动赋值ref来确保测试的顺利进行。
最低0.47元/天 解锁文章
1414

被折叠的 条评论
为什么被折叠?



