问题标签 [redux-mock-store]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1047 浏览

reactjs - Redux 模拟商店仅在分派多个操作时返回一个操作

我正在尝试模拟这个 axios 调用:

如果调用成功,应该同时派发动作创建者 fetchCountryPending() 和 fetchCountryFullfilled(country)。当我像这样嘲笑它时:

第二个期望失败,console.log(actions) 只显示一个包含一个操作的数组,但它应该包含两个操作,fetchCountryPending 和 fetchCountrySuccess。当我登录('dispatched')时,它显示第二个动作正在终端中调度。

0 投票
1 回答
1031 浏览

reactjs - 模拟 axios 适配器不模拟获取请求

我正在尝试测试此功能:

这是我的测试:

当我运行这个测试时,我收到一个错误 UnhandledPromiseRejectionWarning 并且没有收到 fetchCountryPending 并且 fetchCountryRejected 是。似乎 onGet() 没有做任何事情。当我注释掉这条线 mock.onGet('/api/v1/countries/?search=${query}').reply(200, country)时,我最终得到了完全相同的结果,让我相信没有任何东西被嘲笑。我究竟做错了什么?

0 投票
1 回答
88 浏览

react-redux - 测试反应异步动作创建者 - 未定义的数据

我有以下动作和测试用例 - 当我运行这个测试时(开玩笑) - 我看到 TypeError: Cannot read property 'data' of undefined in action creator, 不确定这里缺少什么?我正在提供预期的 mockData。是因为这里嵌套了一个异步吗?但我正在使用`.then 但它仍然失败。

0 投票
1 回答
756 浏览

javascript - Redux 容器单元测试 - 无法访问包装组件的道具

在 React v6 升级之后,我现有的组件测试用例失败了。

这是我的组件容器代码 TodoContainer.jsx:

这是我的测试代码 TodoContainer.test.jsx:

我得到的错误是:

Invariant Violation:在 props 中传递 redux store 已被删除,并且不执行任何操作。要为特定组件使用自定义 Redux 存储,请使用 React.createContext() 创建自定义 React 上下文,并将上下文对象传递给 React-Redux 的 Provider 和特定组件,例如:你也可以传递一个 {context : MyContext} 选项来连接。

有没有办法在访问道具时通过提供者传递商店,同样的方式?

0 投票
1 回答
3316 浏览

reactjs - 在 Simulate('change') 状态未更新后

我有一个搜索过滤器组件,里面有一个输入,它连接到 redux。

我用 jest 和酵素写了一个测试来测试用户输入新值时的状态更新

问题是模拟更改后状态不会更新,并且测试总是失败。

我该如何解决这个问题,或者是否有其他方法来测试状态更新?

0 投票
1 回答
3242 浏览

javascript - Redux Mock Store 给出 'Actions must be plain objects。使用自定义中间件进行异步操作。

我正在尝试React使用redux-mock-store在我的应用程序中测试一些异步代码。

Jest用来运行这个测试。运行以上测试时出现以下错误Actions must be plain objects. Use custom middleware for async actions.这里有什么问题?

0 投票
1 回答
610 浏览

reactjs - 2019 年如何使用 redux-mock-store 配置或测试容器?

我配置了一个容器以使用 redux-mock-store 测试到最后一个版本,但我遇到了一些问题。find() 函数不起作用。我曾经收到零节点和零长度。当我使用 mount 代替浅层函数时,这是可行的,但是我遇到了无法识别 redux mapDispatchToProps 的问题。我如何保证会调用该操作?我不想测试商店而是测试动作功能,因为我使用 thunk。我的推理对吗?

我的容器:

我的测试:

0 投票
0 回答
121 浏览

reactjs - 测试 mapDispatchToProps 的最佳方法

我正在编写测试来测试涉及调度的 mapDispatchToProps。

这是我的 mapDispatchToProps。

dispatch 中的方法如下。

这是我在 Jest 中的测试用例。

dispatch.mock.calls[0][0] 给了我一个匿名函数。请提供有关测试方法的建议。

谢谢。

0 投票
0 回答
219 浏览

jestjs - 在 redux-mock-store getActions 中获取空数组

在我的行动中提出请求。从需要从模拟 redux 存储返回值的 api 中提取。我让它在 redux 模拟商店调度操作时启动该请求,但是当 store.getActions() 时我无法正确显示这些值。

我收到错误store.getActions()是从模拟商店返回空状态。

例如:

simpleActions.js

simpleAction.test.js

如何调用或模拟需要返回值而不是模拟存储中的状态空数组的异步/等待函数。任何帮助将不胜感激。

0 投票
0 回答
433 浏览

redux - 如何使用 react-test-renderer 测试 redux 连接的 HOC 组件的存储状态更改?

我正在尝试测试以下组件,该组件基于几个 React 培训站点上非常常见的“ProtectedRoute”HOC/包装器示例。基本概念是在<Route>级别包装受保护的组件,以便重定向未经身份验证的用户。

到目前为止,我已经使用react-test-rendererand编写了以下测试redux-mock-store

这两个测试都运行良好,并按预期通过,但是我现在有兴趣测试以下真实世界场景:

用户当前已登录,authenticated=true在商店中。一段时间后,他们的 cookie 过期。对于我们的示例,假设我们定期使用服务器检查 auth 的状态,它会触发一些动作来触发,导致商店的新状态导致authenticated=false.

除非我从未遇到过示例,否则我相当确定redux-mock-store(即使它的字面意思是“模拟商店”)在您调用store.dispatch(myAction()). 我能够测试状态变化myAction.spec.js,但我仍然无法模拟接收更新状态/道具的 HOCgetDerivedStateFromProps

据我所知,我编写的测试涵盖了组件以authenticated=true/false初始状态加载并按预期工作的两种情况,但是当我查看覆盖结果时,getDerivedStateFromProps这些测试并未涵盖该功能。

我将如何编写一个测试来模拟authentication商店状态中布尔值的变化并断言组件(以前)Authenticated收到了变化,以确保我在测试中涵盖了这一点?getDerivedStateFromPropscomponentWillReceiveProps