问题标签 [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 投票
1 回答
1332 浏览

redux - 为什么 redux-mock-store 不显示在 catch 承诺中调度的动作?

在考虑标题问题时,我非常糟糕,对此感到抱歉。

我的问题:

我正在对我的异步 redux 操作进行单元测试,就像docs 中建议的那样。我使用 模拟 API 调用nock并使用redux-mock-store. 到目前为止它工作得很好,但我有一个测试失败了,即使它确实有效。分派的动作既没有出现在返回的数组中,store.getActions()也没有在 中改变状态store.getState()。我确信它确实会发生,因为当我手动测试并使用 Redux Dev Tools 观察它时,我可以看到它。

在这个动作调度中唯一不同的是,它是在另一个承诺的捕获中的一个承诺中调用的。(我知道这听起来很混乱,只要看看代码!)

我的代码是什么样的:

那个行动:

httpPost方法只是一个包装器fetch,如果状态码不在 200-299 范围内则抛出,并且如果它没有失败,则已经将 json 解析为一个对象。如果它看起来相关,我可以在此处添加它,但我不想让它变得更长。

没有出现的动作是dispatch(setError(data.error))

考试:

感谢您的阅读。

编辑:

setError动作:

httpPost方法:

0 投票
1 回答
1842 浏览

javascript - redux-mock-store 商店的状态在调度操作后没有更新

我有一个记录器中间件,它显示即将被调度的动作和下一个状态。

我正在为我的操作编写测试,并在模拟商店中发送操作。这些成功调度但是模拟存储状态没有被更新(如前面提到的记录器所示)。

请注意我使用的是 redux-mock-store。

记录器显示以下内容:

0 投票
2 回答
11695 浏览

reactjs - 使用 redux thunk 测试异步操作

我正在尝试测试具有异步调用的操作。我使用 Thunk 作为我的中间件。在下面的操作中,我只在服务器返回OK响应时调度和更新商店。

我在编写测试时遇到问题,无论是调用还是不调度的测试(取决于服务器响应),或者我可以让操作被调用并检查存储中的值是否正确更新。

我正在使用 fetch-mock 来模拟网络的 fetch() 实现。但是,看起来我的代码块then没有执行。我也尝试过使用这里的示例,但没有成功 - http://redux.js.org/docs/recipes/WritingTests.html

在对此进行了进一步研究之后,我认为 fetch-mock 存在问题,要么没有解决 promise 以便 then 语句执行,要么完全取消了 fetch。当我将 console.log 添加到两个 then 语句时,什么都不会执行。

我在测试中做错了什么?

0 投票
1 回答
108 浏览

javascript - 如何测试依赖先前调度调用的异步动作创建者?

我有一个异步动作创建器,它分为两个动作,一个表示动作的开始,另一个表示结束。异步动作创建者中间的 Web 请求依赖于第一次同步调度设置的值:

redux-mock-store 的 dispatch 的实现非常稀疏,而且(显然)事后看来,我们从不将任何 reducer 传递给 mocked store。

这意味着第一个dispatch调用没有机会更新第二个调度调用所依赖的状态。然后,我们发出的 Web 请求具有原始值tofrom日期,而不是来自异步操作调用的更新值。

我想避免直接使用传入的fromandto值,changeFilter因为可能会对changeFilterRequest. 直接依赖结果getState也将允许我干掉少数以不同方式过滤的类似方法。

对于这些类型的测试,我应该遵循什么模式吗?我应该以不同的方式来构建我的动作创建者吗?

0 投票
1 回答
1216 浏览

redux - 第二个论点是为了什么?

我在教程中找到了这段代码

整个一点expectedActions都没有意义。

文档说,如果有第二个参数store,它应该是一个函数;(没有解释说明该功能会做什么)。

起初我认为这是出于某种原因迫使一些行动进入商店,但很快console.log告诉我事实并非如此。

因为只会dispatch导致动作累积。

那么是文中的错误还是有什么值得进一步探索的智慧呢?

0 投票
2 回答
3442 浏览

javascript - redux-mock-store getActions 返回空数组

这是我的动作创建者:

考试:

输出是:

这意味着 - 动作创建者已被调用 - 并且 catch 中的 console.log(2) 已被调用!但不知何故 getActions 返回一个空数组。请帮我弄清楚原因。

0 投票
1 回答
1330 浏览

javascript - 如何测试使用 setTimeout 调用另一个操作的异步操作创建者

我有以下显示通知然后将其删除的操作,并且我正在尝试为其编写单元测试,但我似乎无法弄清楚如何模拟 setTimeout。

按照 redux 网站上关于异步测试的教程,我提出了以下测试:

现在它只是抛出一个错误Cannot read property 'then' of undefined at store.dispatch,任何帮助将不胜感激。

0 投票
1 回答
743 浏览

unit-testing - 带有 nock 和 redux-mock-store 错误的 Redux 操作测试

我是 redux 测试的新手,并且一直在尝试对应用程序进行回填测试,如果这是使用 nock 和 redux-mock-store 进行测试的完全错误的方法,我感到非常抱歉。

这是方法,它似乎被调用了,但通常会导致标头不匹配的 nock 失败原因的捕获原因。

即使标头被删除并且 nock 拦截了呼叫。我每次都收到这个错误

0 投票
1 回答
39 浏览

ecmascript-6 - 异步操作创建者未按预期分派操作

伙计们。

我有以下异步动作创建者,它null根据当前状态调度另一个动作创建者或返回。null问题是无论当前状态如何,它总是会返回。

如您所见,动作创建者的调度fetchPosts()取决于items等于空数组的值。我正在对其进行测试,为其提供具有以下结构的初始状态:

我显然没有items正确访问该属性,但是我看不到代码中的错误在哪里。我正在使用 redux-mock-store 对此进行测试,创建一个 mockStore 实例,并为其提供initialState. 希望你们能查明我代码中的错误。提前致谢。

0 投票
2 回答
5880 浏览

reactjs - 使用 redux-mock-store 进行单元测试 - 我怎样才能使这个单元测试通过?

我刚刚开始使用玩笑和酶。

我在进行单元测试时遇到问题。我使用 redux-mock-store 来模拟存储对象。

我期待两个 li 元素,但我得到了 0 li 元素。

我已经陷入这个错误很长时间了。

谁能帮我弄清楚如何使这个测试通过,拜托!?

来自 Jest 测试运行器的测试结果

评论列表.test.js

评论列表.js