javascript - redux reducer 中的错误处理

标签 javascript unit-testing redux

我一直在尝试测试react+redux应用程序并遇到了一个问题。我的 reducer 期望“FOO”类型的操作来实现嵌套的 Javascript 对象,如下所示:

{
  type: "FOO"
  data: {
    bar: "foo"
  }
}

当我在测试中将没有数据字段的对象传递给reducer时,reducer显然崩溃了。

我的问题是:在实现/测试 reducer 时,我可以假设操作创建者已经处理了错误,并且给定类型的操作始终具有正确的结构,或者也应该处理 reducer 中的错误(这可能会导致错误状态的风险)传递给组件和选择器并使错误处理成为一场噩梦)?或者我错过了什么?

最佳答案

调度程序仅检查类型属性的操作。

Reducer 根本不检查任何属性的操作。所有操作对象都需要进行相应的错误检查和处理。

如果您想避免在 reducer 内部进行检查,则检查错误的另一种方法可以是使用中间件。

关于javascript - redux reducer 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41429755/

相关文章:

javascript - 使用 lodash 获取对象值的子集作为管道分隔字符串

c# - 如何测试依赖于当前日期的逻辑

javascript - 如何创建一个字典,使用单词的频率作为键?

javascript - 使用 forEach es6 将对象数组添加到对象数组中

javascript - jQuery - 单击一个元素会触发另一个元素

ios - Xamarin 单元测试不会加载到模拟器或手机 : "Cannot register two managed types ... with the same native name (' AppDelegate').“

c# - NUnit 断言方法错误也在 NUnit.Framework 和 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间中找到

reactjs - 是否可以从组件外部触发 Redux 操作?

javascript - 有效字段更改后,Formik 调度 Redux 操作

javascript - 有没有更短的方法在 mapStateProps 中编写/表示它?