我最近将一个应用程序迁移到了我喜欢的 mui v4。
还完成了更新我们使用 jest/enzyme 运行的测试套件。例如,我现在赞成mount而不是shallow.
一个问题是我找不到测试图标存在的方法。
在撰写本文时,我正在使用所有最新版本的 material-ui、react 和工具,例如 jest/enzyme 等
在 MUI 源代码中,我在规范文件中看到了这样的内容:
wrapper.find('svg[data-mui-test="KeyboardArrowLeftIcon"]'
Run Code Online (Sandbox Code Playgroud)
这是在createSvgIcon源中这个道具是如何声明的:
<SvgIcon {...props} data-mui-test={`${displayName}Icon`} ref={ref}>
Run Code Online (Sandbox Code Playgroud)
但是,我data-mui-test在我自己的node_modules文件中找不到对该道具的任何引用@material-ui/icons/utils/createSvgIcon.js:
<SvgIcon {...props} data-mui-test={`${displayName}Icon`} ref={ref}>
Run Code Online (Sandbox Code Playgroud)
而且,事实上,wrapper.debug()在测试中表明 DOM 中不存在该道具:
[...]
<svg
className="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
color={[undefined]}
aria-hidden="true"
role="presentation">
[...]
Run Code Online (Sandbox Code Playgroud)
问题
data-mui-test从生成的 npm 模块代码中删除了 prop?material-ui ×1