首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的测试失败了,因为它找不到redux存储?

测试失败的原因可能是因为测试代码中无法找到redux存储。Redux是一个用于JavaScript应用程序的可预测状态容器,常用于管理应用程序的状态。它通常与React一起使用,但也可以与其他JavaScript框架集成。

当测试代码中无法找到redux存储时,可能有以下几个可能的原因:

  1. 缺少redux依赖:确保项目中已经安装了redux及其相关依赖。可以通过npm或yarn安装redux,并在测试代码中引入redux。
  2. 缺少redux存储配置:在测试代码中,需要配置redux存储以便在测试中使用。这包括创建redux存储并将其传递给测试组件。
  3. 测试环境配置问题:确保测试环境中已经正确配置了redux存储。这可能涉及到在测试环境中模拟redux存储的创建和配置。

解决这个问题的方法取决于具体的测试框架和代码结构。以下是一些可能的解决方案:

  1. 在测试代码中引入redux依赖:确保在测试代码中引入redux及其相关依赖。例如,在使用Jest进行测试时,可以在测试文件的顶部添加以下代码:
代码语言:txt
复制
import { createStore } from 'redux';
// 其他引入语句
  1. 配置redux存储:在测试代码中,创建并配置redux存储。这可以通过使用createStore函数创建redux存储,并将其传递给测试组件。例如:
代码语言:txt
复制
import { createStore } from 'redux';
import { render } from '@testing-library/react';
import { Provider } from 'react-redux';
import rootReducer from '../reducers';

const store = createStore(rootReducer);

test('your test case', () => {
  render(
    <Provider store={store}>
      {/* 测试组件 */}
    </Provider>
  );
  // 其他测试逻辑
});
  1. 检查测试环境配置:确保测试环境中已经正确配置了redux存储。这可能涉及到在测试环境中模拟redux存储的创建和配置。具体的配置方法取决于测试框架和工具。

总结:当测试失败并且报错找不到redux存储时,需要检查是否正确引入了redux依赖,是否正确配置了redux存储,并确保测试环境中已经正确配置了redux存储。根据具体的测试框架和代码结构,采取相应的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

设计师都能懂的 Redux 指南

让我们深入研究 Redux 可以做什么,它为什么做它的事情,它的缺点是什么,以及它与设计有哪些关联? 你听说过 Redux 吗?它是什么?...请不要用 Google 搜索 花哨的后端的东西 我听说过它,但我不知道它是什么,这可能是一个 React 框架 是一种在 React 应用中存储管理状态的更好方式 这个问题,我问过 40 多位设计师,以上是他们的经典回答...他们中的许多人都知道 Redux 与React 一起工作,它的工作是状态管理。 本文的目的就是让你对 Redux 有更全面的认知: 它能做什么?为什么它要这样设计?何时使用它?...你们很多人可能都听说过,它的工作是状态管理。稍后我将解释状态管理的含义, 此刻,我只能想让你看下面这张图: 为什么要了解 Redux Redux 更多的是关于应用程序的内部工作而不是它的外观和感受。...但因为 react-redux 本身只是个连接库,并且开发者通常一起使用 Redux 和 react-redux ,因此我认为将它当做是 Redux 的好处之一是并无不妥。

1.7K10

从设计的角度看 Redux

你知道 Redux 真正的作用远不止状态管理吗? 你是否想要了解 Redux 的工作原理? 让我们深入研究 Redux 可以做什么,它为什么做它的事情,它的缺点是什么,以及它与设计有哪些关联?...请不要用 Google 搜索 花哨的后端的东西 我听说过它,但我不知道它是什么,这可能是一个 React 框架 是一种在 React 应用中存储管理状态的更好方式 这个问题,我问过 40 多位设计师,以上是他们的经典回答...为什么要了解 Redux Redux 更多的是关于应用程序的内部工作而不是它的外观和感受。 这是一个有点复杂的工具,学习曲线相对陡峭,但这是否意味着我们作为设计师应该远离它? 不。...我认为我们应该拥抱它。汽车设计师应该了解引擎的用途,对吗?为了成功地设计应用程序界面,设计师还应该对底层的东西有扎实的了解。我们应该了解它可以做什么,理解开发人员为什么使用它,并了解它的优势和含义。...但因为 react-redux 本身只是个连接库,并且开发者通常一起使用 Redux 和 react-redux ,因此我认为将它当做是 Redux 的好处之一是并无不妥。 ?

1.7K30
  • React 单元测试策略及落地

    我们对自动化测试套件寄予的厚望是,它能帮我们安全重构已有代码、快速回归已有功能、保存业务上下文。测试种类多种多样,为什么我要重点谈单元测试呢?因为它写起来相对最容易、运行速度最快、反馈效果又最直接。...显然,这样的测试也不利于重构的开展。 此外,对外部依赖采取mock策略,同样是某种程度上的“关注内部实现”,因为mock的失败同样将导致测试的失败,而非真正业务场景的失败。...它讲的是两方面: 看到测试时,你就知道它测的业务点是啥 测试挂掉时,能清楚地知道失败的业务场景、期望数据与实际输出的差异 总结起来,这些表达力主要体现在以下的方面: 测试描述。...经过仔细总结,我认为这一层主要的测试内容有五点: 是否使用正确的参数(通常是从 action payload 或 redux 中来),调用了正确的 API 对于 mock 的 API 返回,是否保存了正确的数据...如果某段数据获取的逻辑多处重复,则可以考虑将该逻辑抽取到 selector 中并进行单独测试;第三种可能,确实是问题,但由于在我所在项目发生频率较低(部分因为上个项目没有类型系统我们不会随意改 redux

    1.1K20

    【领域驱动设计】Redux 和领域驱动设计

    在本文中,我解释了 DDD 是什么,一些关键概念,以及 Redux 如何实现其思想。理解两者,我们可以提供更好的实现;来自不同世界的两种方法相互碰撞并利用相同的设计原则。...这就是为什么命令可能会失败,但域事件不会。命令是我们想要发生的事情,而领域事件是已经发生的事情。...Redux 不提供结果,因为它实现了纯 CQS。 事件:它们也是动作。但是,¿当一个行动变成事实时?一旦减少。在减少一个动作之后,它就变成了一个事实,一个不会改变的东西。...DDD 用于事件溯源的目标是增加数据库中写入的吞吐量。它不会将每个更改保存在数据库中,而是仅存储每个聚合发出的域事件,并在可能的情况下存储聚合的快照。...虽然它不是一种模式,但 DDD 很好地解耦了它们之间的聚合。除了性能的可扩展性之外,它是 DDD 的主要优势之一。聚合的概念以及它如何与其他人交互它提供了高度的可维护性和更好的实现。

    1.5K30

    redux-saga_pub culture

    大家好,又见面了,我是你们的朋友全栈君。 本文用以记录从调研Redux Saga,到应用到项目中的一些收获。...但是,马上了解到了redux-sage,因为大家都在对比两者。本文并不会做对比,在文章的最后会简单介绍为什么选了Saga而不是thunk的原因,仅供参考。...通过这个改变,前端应用的代码结构更加清晰,业务层可复用的部分增加。当然,Saga对自动化测试也支持的很好,可以将逻辑单独使用自动化脚本测试,提高项目质量。...这句话使我决定了尝试用saga或thunk来实践把前端分层的设想。...之所以最后选择了saga是因为这段 Cheng Lou 的视频: On the Spectrum of Abstraction (youtube) 视频中讲述了在一种抽象的概念下如何去选择一种技术。

    1.4K10

    Redux原理分析以及使用详解(TS && JS)

    ,redux的出现就是方便解决了这类问题。...();//订阅一个函数,每当state改变时,都会去调用这个函数 三、Redux中间件机制 Redux本身就提供了非常强大的数据流管理功能,但这并不是它唯一的强大之处,它还提供了利用中间件来扩展自身功能...4.4、总结 总的来讲Redux Saga适用于对事件操作有细粒度需求的场景,同时它也提供了更好的可测试性,与可维护性,比较适合对异步处理要求高的大型项目 。...,显然这是浪费性能的,我就想在react入口文件去调用action,然后分发给reducer,存储到store,页面就能获取到值。...,但是,这整个Action方法,返回的是一个async,async其实本质也就是promise对象,那么又是一个异步对象,所以它的外部不会等待,当代码执行到await这块, 因为需要时间来调用接口,所以会跳出去

    4.5K30

    我是这样在 React 中实践 TDD 编程的

    在Redux中编写测试听起来肯定有悖直觉。如果你使用了Redux,它可能看起来更加复杂。 然而,在添加功能之前编写测试有助于编写更好的代码,因为你预先考虑了将使用的设计模式、体系结构和变量的名称。...准备好mock适配器后,我们就可以专注于初始化存储和并编写测试了。 编写测试 这是最有趣的部分。让我们开始TDD。 首先,让我们创建并配置存储。在src目录中,创建一个名为index.js的新目录。...在这个目录中,添加一个名为user.test.js的文件。这个文件将包含我们将为userSlice编写的测试。 第一个测试是确保存储是空的或未定义的。...dispatch一个action,并确保它已完成,并比较预期状态和实际状态。 同样,测试将失败。让我们为创建用户特性添加thunk和reducer。...结论 在本文中,我们快速介绍了使用Redux的TDD。如果你希望使用TDD编写React组件,你可以查看我写的这篇文章。

    1.9K30

    Redux从设计到源码

    我们为什么要用Redux? Redux是什么? Redux是JavaScript状态容器,能提供可预测化的状态管理。 它认为: Web应用是一个状态机,视图与状态是一一对应的。...我们先来看看“状态容器”、“视图与状态一一对应”以及“一个对象”这三个概念的具体体现。 ? 如上图,Store是Redux中的状态容器,它里面存储着所有的状态数据,每个状态都跟一个视图一一对应。...可以看到,在整个流程中数据都是单向流动的,这种方式保证了流程的清晰。 为什么要用Redux? 前端复杂性的根本原因是大量无规律的交互和异步操作。...简化存储:事件用于描述系统内发生的事情,我们可以考虑用事件存储代替复杂的关系存储。 溯源:正因为事件是不可更改的,并且记录了所有系统内发生的事情,我们能用它来跟踪问题、重现错误,甚至做备份和还原。...缺点: 事件丢失:因为ES存储都是基于事件的,所以一旦事件丢失就很难保证数据的完整性。 修改时必须兼容老结构:指的是因为老的事件不可变,所以当业务变动的时候新的事件必须兼容老结构。

    1.4K60

    单向数据流-从共享状态管理:fluxreduxvuex漫谈异步数据处理

    但是因为 React 包含函数式的思想,也是单向数据流,和 Redux 很搭,所以一般都用  Redux 来进行状态管理。...和 redux-thunk 的思想类似,只不过做了一些简化,成功失败手动 dispatch 被封装成自动了: **封装少,自由度高,但是代码就会变复杂;封装多,代码变简单了,但是自由度就会变差。...纯函数特性 输出不受外部环境影响:同样的输入一定可以获得同样的输出 不影响外部环境:包括但不限于修改外部数据、发起网络请求、触发事件等等 为什么要多用纯函数呢?因为它们具有很强的“可预测性”。...redux-saga 把异步获取数据这类的操作都叫做副作用(Side  Effect),它的目标就是把这些副作用管理好,让他们执行更高效,测试更简单,在处理故障时更容易。...这样看来我认为VUE是更推荐在使用了VUEX的框架中的每个组件内部都使用store,而React-Redux则提供了自由选择性。

    3.7K40

    Redux异步解决方案之Redux-Thunk原理及源码解析

    本文会讲解Redux官方实现的异步解决方案----Redux-Thunk,我们还是会从基本的用法入手,再到原理解析,然后自己手写一个Redux-Thunk来替换它,也就是源码解析。...stackoverflow对这个问题有一个很好的回答,而且是官方推荐的解释。我再写一遍也不会比他写得更好,所以我就直接翻译了: ----翻译从这里开始---- 不要觉得一个库就应该规定了所有事情!...但是为什么showNotificationWithTimeout()要接收dispatch作为第一个参数呢?因为他需要将action发给store。...一个单例的store也让单元测试很难写。测试action creator的时候你很难mock store,因为他引用了一个具体的真实的store。你甚至不能从外部重置store状态。...注意因为我们已经教了Redux怎么区分这些特殊的action creator(我们称之为thunk action creator),现在我们可以在任何普通的action creator的地方使用他们了。

    3.6K51

    Vue 应用单元测试的策略与实践 01 - 前言和目标

    单元测试的上下文 谈任何东西都一定要有个上下文。你的论述不能是「因为单元测试有这些好处,所以我们要做单元测试」,而应该是「不做单元测试我们会遇到什么问题」,这样才能回答「为什么要写单元测试」的问题。...那么在这个上下文中来谈要不要单元测试,我们就可以很有根据了,而不是“开发爽了就用,不爽就不用”这样含糊的答案: 如果你说我的业务部门不需要频繁上线,并且我有足够的人力来覆盖手工测试,那你可以不用单元测试...唯解决了人工、质量的这一环,开发效率才能稳步提升,团队和企业的高响应力才可能达到。 至此,回答了「为什么我们需要写单元测试」的问题。...其实这里的子标题就是为什么选择 Jest?有时候安于现状,只不过是因为我们没有见过理想的模样。只有当我们见过更好的世界和更好的测试框架,才会惊呼“原来世界是这样美好呀!我怎么都没有想到呢?” ?...它提供了一种“零配置”的开发体验,并具备诸多开箱即用的功能,比如 Mock 和代码覆盖率等。你不仅可以将此测试框架应用于React.js应用程序,也可以应用于其他 JavaScript 框架。

    89240

    前端网红框架的插件机制全梳理(axios、koa、redux、vuex)

    Vuex 内部的警告,因为在 Vuex 中,所有 state 的修改都应该通过 mutations 来进行,但是 Vuex 没有选择把 commit 也暴露出来,这也约束了插件的能力。...有了这个前置知识,就可以很轻易的实现 redux 的中间件机制了。...vuex的实现最为简单,就是提供了两个回调函数,vuex 内部在合适的时机去调用(我个人感觉大部分的库提供这样的机制也足够了)。...redux的源码里写的最复杂最绕,它的中间件机制本质上就是用高阶函数不断的把 dispatch 包装再包装,形成套娃。...你可能还想看 金九银十:一年前端的面试分享 2020年中大厂前端面试总结 如何学习React源码 如何学习源码 | 如何高效学习一个新知识 为什么要学习源码,怎么学习? 我在阿里招前端,我该怎么帮你?

    1.9K30

    「前端架构」Redux vs.MobX的权威指南

    Redux Redux是一个流行的状态管理解决方案,它结合了Flux和函数式编程概念。...我个人喜欢将应用程序的整个状态存储在单个存储中的想法。这有助于我把同一个地方称为真理的唯一来源。有些人可能会说多家商店对他们更有效,更喜欢MobX。...Mobx 在MobX中,状态是可变的,这意味着您可以简单地用新值更新状态。这让黑帮变得不纯洁。不纯函数很难测试和维护,因为它们并不总是返回可预测的输出。...样板代码 Redux 关于Redux最大的抱怨之一是它附带的大量样板代码。当您将React与Redux集成时,会产生更多的样板代码。这是因为Redux本质上是显式的,很多功能都必须显式地编码。...纯函数更容易测试,因为它们是可预测的和简单的。这就产生了可伸缩的可维护代码。这是选择Redux而不是MobX的核心优势之一。 获奖者:Redux 结论 好吧,判决结果如何?

    1.6K30

    2023 React 生态系统,以及我的一些吐槽……

    大致可以看出,TanStack Router 的主要优势在于类型安全、SWR 策略以及 Devtools 支持等等…… 如果你使用的是 Next.js,则不需要使用路由,因为它内置了路由功能。...zustand 一个小巧、快速和可扩展的基于简化 Flux 原则的骨架状态管理解决方案。它具有基于 hooks 的舒适 API,没有样板代码,也没有过多的观点。 不要因为它看起来可爱而忽视它。...到现在为止,您可能会想,“为什么你不只是使用 Redux-Form?”问得好。...不是因为我认为 React 在实现表单方面采取了错误的方法,而是因为在使用 React 时,表单是最具挑战性的问题。 许多框架都有自己的解决方案来处理表单。AngularJS 在这方面做得非常好。...此外,Formik 依赖于表单元素,并且在控制 Redux 存储时存在一些挑战。

    78430

    React Hooks 还不如类?

    一个 hooked 函数并不是一个常规函数,因为它具有状态,有一个看上去很奇怪的 this(也就是 useRef),并且可以具有多个实例。...我不能将一个 hook 放在一个 if 语句中,因为 hooks 的内部机制是基于调用顺序的,这简直太疯狂了!...整个实现位于类之外,而状态位于存储中。没有存储,所有状态逻辑都必须在类内部实现,那么这个类当然会膨胀。但是同样,React 似乎正在解决一个大多数情况下都是因为没有状态管理工具才会出现的问题。...好吧,关于这一点我只想讲一件事——给我看看数字。 我至今找不到任何文章,也找不到任何我可以克隆并运行的基准测试演示应用,用来对比 Funclass 和类的性能。...顺便说一句,在 2017 年底,我发表了一篇题为“Redux 的丑陋一面”的帖子,今天,甚至 Redux 的创建者 Dan Abramov 自己也已经承认 Redux 是一个巨大的错误: https:/

    84110

    Rematch: Redux 的重新设计

    将所有内容都放在视图中可能会导致关注点的分离:它将与javascript视图库联系在一起,使代码更难测试,而且可能最大的麻烦是:必须不断地思考和调整存储状态的位置。...也许最流行的状态管理库是Redux。在过去的两年里,它变得越来越受欢迎。那么为什么这么喜欢一个简单的库呢? Redux 更具性能?答案是否定的。...为什么使用 Redux 在表层之下,Redux 与 TJ 的根对象{}完全相同——只是包装在了一系列实用工具的管道(pipeline)中。 在 Redux 中,不能直接修改状态。...将 Redux 视为一个带有更新前/更新后钩子的全局对象,以及能够以简单的方式合成新状态。 Redux 是不是太复杂了? 是的。...重新设计Redux 我认为Redux值得重写,至少有以下 6 个方面可以改进得更友好。

    1.6K50

    每日两题 T35

    redux-saga redux-saga 是一个用于管理应用程序 Side Effect(副作用,例如异步获取数据,访问浏览器缓存等)的 library,它的目标是让副作用管理更容易,执行更高效,测试更简单...可以想像为,一个 saga 就像是应用程序中一个单独的线程,它独自负责处理副作用。...redux-saga 使用了 ES6 的 Generator 功能,让异步的流程更易于读取,写入和测试。...不同于 redux thunk,你不会再遇到回调地狱了,你可以很容易地测试异步流程并保持你的 action 是干净的。...api层与store解耦,缺点是对请求失败,请求中的情形没有很好的处理 •redux-saga 的优点是api层与store解耦,对请求中,请求失败都有完善的处理,缺点是代码量较大 References

    77830
    领券