javascript - 如何在 Jest 的函数组件中测试回调函数
问题描述
如果我删除回调() =>测试完成成功,但我需要这个回调的功能
零件
const Slider = ({slideSelected, slides}) => {
const slideClicked = slide => () => { // can't test this
slideSelected(slide);
};
const renderSlide = item => (
<Slide
slideClicked={slideClicked}
item={item}
/>
);
return (
<Carousel
data={slides}
renderItem={renderSlide}
/>
);
};
测试
const slideSelectedFunc = jest.fn();
wrapper.setProps({
slides: [{ title: 'hello' }],
slideSelected: slideSelectedFunc,
})
const Item = sliderShallowWrapper.find('Carousel').prop('renderItem');
const itemShallowWrapper = shallow(<Item item={[{ title: 'hello' }]} />);
itemShallowWrapper.props().slideClicked();
expect(slideSelectedFunc).toHaveBeenCalled(); // error
版本开玩笑 24.9
解决方案
slideClicked 不是您项目的道具,您需要先找到 Slide,然后您将获得正确的道具。
itemShallowWrapper.find("Slide").props().slideClicked();
expect(slideSelectedFunc).toHaveBeenCalled();
推荐阅读
- sql - sql中总用户的月总计数
- javascript - 如何解决带有负索引移位的数组交换?(Javascript)
- powershell - 在 Pester 测试中使用 PipelineVariable 失败
- flutter - 如何将我生成的 QR 图像保存到图库中?使用颤振
- python - 熊猫 - 计算每个月的总项目数(累积总和?)
- windows - 如何在 Windows 桌面客户端中自动化 Amazon 工作区的登录过程
- python - Asyncio loop.run_until_complete 在小部件视图之前运行
- c++ - 在 ubuntu 终端上运行会出现意外的换行符
- c++ - 如何最大化 ARM little.big 架构的应用程序性能 - MPI
- c - 使用单词而不是运算符的后缀计算器