Jest/Storyshots 测试我的组件中的响应式元素

Posted

技术标签:

【中文标题】Jest/Storyshots 测试我的组件中的响应式元素【英文标题】:Jest/Storyshots test responsive elements in my components 【发布时间】:2019-12-22 08:25:02 【问题描述】:

我正在使用结合了故事书和故事镜头的反应材料 ui。我正在尝试了解如何通过故事书通过笑话或故事镜头来测试 Material-ui 中的响应元素

我的组件中有Hidden 元素,如下所示

<Hidden xsDown>
    displayText
</Hidden>

以及看起来很像的故事

storiesOf("Card", module)
    .addDecorator(muiTheme(myTheme))
    .add("options bar", () => (
        <Card ...someProps/>
    ));

我已经尝试在我的主题中修改断点,这在通过故事书查看时会产生效果。但是,无论我尝试了什么,Hidden 元素都不会在我的快照中呈现。

我也尝试过不使用Hidden 元素并尝试className 样式来设置display: none(如果theme.breakpoints.down('xs') 为真)。这会在我的快照中生成元素,例如

<h6
   className="MuiTypography-root CardOptions-label-1170 MuiTypography- 
 subtitle2"
>
   View Route
</h6>

但此块中没有任何内容告诉我该元素被隐藏在 xs 屏幕上。

似乎我应该能够以某种方式在故事书中将 Hidden 元素中的 xsDown 切换为 true 或 false 以在我的快照中渲染或不渲染该元素,但我没有运气弄清楚这一点出去。

我想总的来说,我只是想知道大多数人是如何用玩笑来测试响应式 UI 的。似乎我应该能够通过快照来完成此任务,但也许我遗漏了一些东西。

感谢您的帮助

【问题讨论】:

【参考方案1】:

目前 Storybook 不提供开箱即用的响应式 UI 测试库。

但是,您可以使用其他库,例如 Chroma(Storybook 背后的公司)或 React screenshot test。

你选择哪一个真的取决于其他因素。

阅读更多关于色度的信息:https://blog.hichroma.com/responsive-ui-component-testing-6d38b7e89dd4

【讨论】:

以上是关于Jest/Storyshots 测试我的组件中的响应式元素的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 gen-server 将来自 rabbitmq 消费者的响应发送到 Erlang 中的生产者

使用表单的响应将数据集属性保存在 JSON 文件中 (Vue.js)

如何测试组件中的react useContext useReducer调度

关于Element UI中页面样式小问题

使用 Jest 在 Vue 中为组件中的方法编写单元测试

测试包含在 withRouter 中的反应组件(最好使用 jest/enzyme)