如何解决测试useSelector值更改后安装
我有一个React组件,当用户离线时显示一条消息,然后在用户再次在线时显示另一条消息。在线/离线状态由代码库的另一部分处理,并且值存储在Redux存储中。
该组件使用useSelector
挂钩来获取离线状态,如下所示:
const isOffline = useSelector(deviceSelectors.isOffline);
并且我正在使用useEffect
钩子来更新状态并显示不同的DOM,如下所示:
useEffect(() => {
if (isOffline) {
setUserHasBeenOffline(true);
if (userWentOnline) {
setUserWentOnline(false);
}
}
if (userHasBeenOffline && !isOffline) {
setUserWentOnline(true);
setUserHasBeenOffline(false);
}
},[isOffline,userHasBeenOffline,userWentOnline]);
现在,我正在尝试在用户脱机然后使其重新联机时测试代码路径。
对于初始代码路径,我已经有了一个完美的工作测试:
const setupMount = setupWithProvider({
render: () => <NetworkStatus />,[[deviceSelectors.isOffline,false]],initialState: {
device: {
offline: false,},});
it('should render the network status alert for when the user has gone offline',() => {
const { wrapper } = setupMount({
selectors: [[deviceSelectors.isOffline,true]],});
expect(wrapper.find('...').exists()).toBeTruthy();
});
我的问题是,安装后如何更新选择器的值?我看了很多东西,似乎不太容易在Internet上访问此信息。
我尝试过的事情:
- 我也尝试过分解
dispatch
并分派我需要间接更新选择器返回值的操作,但是setupWithProvider
的{{1}}是一个模拟函数。而且我找不到与此有关的工作方法。 - 我检查了包装是否有属性作为更新它的道具,但没有。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。