问题标签 [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.
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
方法:
javascript - redux-mock-store 商店的状态在调度操作后没有更新
我有一个记录器中间件,它显示即将被调度的动作和下一个状态。
我正在为我的操作编写测试,并在模拟商店中发送操作。这些成功调度但是模拟存储状态没有被更新(如前面提到的记录器所示)。
请注意我使用的是 redux-mock-store。
记录器显示以下内容:
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 语句时,什么都不会执行。
我在测试中做错了什么?
javascript - 如何测试依赖先前调度调用的异步动作创建者?
我有一个异步动作创建器,它分为两个动作,一个表示动作的开始,另一个表示结束。异步动作创建者中间的 Web 请求依赖于第一次同步调度设置的值:
redux-mock-store 的 dispatch 的实现非常稀疏,而且(显然)事后看来,我们从不将任何 reducer 传递给 mocked store。
这意味着第一个dispatch
调用没有机会更新第二个调度调用所依赖的状态。然后,我们发出的 Web 请求具有原始值to
和from
日期,而不是来自异步操作调用的更新值。
我想避免直接使用传入的from
andto
值,changeFilter
因为可能会对changeFilterRequest
. 直接依赖结果getState
也将允许我干掉少数以不同方式过滤的类似方法。
对于这些类型的测试,我应该遵循什么模式吗?我应该以不同的方式来构建我的动作创建者吗?
redux - 第二个论点是为了什么?
我在教程中找到了这段代码
整个一点expectedActions
都没有意义。
文档说,如果有第二个参数store
,它应该是一个函数;(没有解释说明该功能会做什么)。
起初我认为这是出于某种原因迫使一些行动进入商店,但很快console.log
告诉我事实并非如此。
因为只会dispatch
导致动作累积。
那么是文中的错误还是有什么值得进一步探索的智慧呢?
javascript - redux-mock-store getActions 返回空数组
这是我的动作创建者:
考试:
输出是:
这意味着 - 动作创建者已被调用 - 并且 catch 中的 console.log(2) 已被调用!但不知何故 getActions 返回一个空数组。请帮我弄清楚原因。
javascript - 如何测试使用 setTimeout 调用另一个操作的异步操作创建者
我有以下显示通知然后将其删除的操作,并且我正在尝试为其编写单元测试,但我似乎无法弄清楚如何模拟 setTimeout。
按照 redux 网站上关于异步测试的教程,我提出了以下测试:
现在它只是抛出一个错误Cannot read property 'then' of undefined at store.dispatch,任何帮助将不胜感激。
unit-testing - 带有 nock 和 redux-mock-store 错误的 Redux 操作测试
我是 redux 测试的新手,并且一直在尝试对应用程序进行回填测试,如果这是使用 nock 和 redux-mock-store 进行测试的完全错误的方法,我感到非常抱歉。
这是方法,它似乎被调用了,但通常会导致标头不匹配的 nock 失败原因的捕获原因。
即使标头被删除并且 nock 拦截了呼叫。我每次都收到这个错误
ecmascript-6 - 异步操作创建者未按预期分派操作
伙计们。
我有以下异步动作创建者,它null
根据当前状态调度另一个动作创建者或返回。null
问题是无论当前状态如何,它总是会返回。
如您所见,动作创建者的调度fetchPosts()
取决于items
等于空数组的值。我正在对其进行测试,为其提供具有以下结构的初始状态:
我显然没有items
正确访问该属性,但是我看不到代码中的错误在哪里。我正在使用 redux-mock-store 对此进行测试,创建一个 mockStore 实例,并为其提供initialState
. 希望你们能查明我代码中的错误。提前致谢。
reactjs - 使用 redux-mock-store 进行单元测试 - 我怎样才能使这个单元测试通过?
我刚刚开始使用玩笑和酶。
我在进行单元测试时遇到问题。我使用 redux-mock-store 来模拟存储对象。
我期待两个 li 元素,但我得到了 0 li 元素。
我已经陷入这个错误很长时间了。
谁能帮我弄清楚如何使这个测试通过,拜托!?