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

NgRx测试- NullInjectorError:没有服务提供商

NgRx是一个用于构建响应式应用程序的状态管理库,它基于Redux模式。它提供了一种集中管理应用程序状态的方式,使得状态的变化和管理变得更加可预测和可维护。

在NgRx中进行测试时,可能会遇到"NullInjectorError:没有服务提供商"的错误。这个错误通常是由于测试环境中缺少必要的依赖注入配置导致的。

要解决这个错误,可以采取以下几个步骤:

  1. 确保在测试文件的顶部导入所需的依赖项。例如,如果你在测试中使用了NgRx的Store,你需要导入StoreModule.forRoot()
  2. 在测试之前,使用TestBed.configureTestingModule()方法配置测试模块。这个方法允许你配置测试环境中所需的依赖项和提供商。确保在配置中包含所有需要的依赖项。
  3. 如果你在测试中使用了自定义的服务,确保在测试模块的提供商配置中包含这些服务。例如,如果你有一个名为MyService的服务,你可以在测试模块的提供商配置中添加{ provide: MyService, useClass: MyService }
  4. 如果你在测试中使用了NgRx的特定功能模块(如Effects、Selectors等),确保在测试模块的导入配置中包含这些模块。例如,如果你在测试中使用了Effects,你可以在测试模块的导入配置中添加EffectsModule.forRoot([MyEffects])
  5. 如果你在测试中使用了NgRx的Store,确保在测试之前使用TestBed.overrideProvider()方法覆盖默认的Store提供商。例如,你可以使用TestBed.overrideProvider(Store, { useValue: mockStore })来使用一个模拟的Store实例。

总结起来,解决"NullInjectorError:没有服务提供商"的错误需要确保在测试环境中正确配置了所有需要的依赖项和提供商。通过使用TestBed.configureTestingModule()方法配置测试模块,并在其中包含所有需要的依赖项和提供商,可以解决这个错误。

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

相关·内容

Angular 接入 NGRX 状态管理

来更新状态的 Reducer: 选项介绍: 选项 作用 --reducers 执行reducers存放路径,约定路径为上一级的 index.ts,也是 store 创建的文件 --skip-tests 跳过生成测试文件...提供目标模块的路径 --skip-tests 跳过生成测试文件 示例命令: ng generate effect store/effects/user --root --module=app.module.ts...EffectsModule.forRoot([UserEffects]), ], }) export class AppModule {} 编写 Test User Api: 执行 ng 命令生成 User 服务...设置副作用所关联的 Action ofType(UserActions.updateUser), // 处理副作用 exhaustMap(() => { // 调用服务...AppState 创建实体: 选项介绍: 选项 作用 --reducers 执行reducers存放路径,约定路径为上一级的 index.ts,也是 store 创建的文件 --skip-tests 跳过生成测试文件

24810
  • 一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序

    这取决于有些开发人员会告诉你最好使用React并在没有额外代码的情况下构建自己的组件。但这也可能是一个问题。...问题是我们的新组件没有做任何事情。...使用后端 由于我们没有在这里构建服务器端,因此我们将使用Firebase作为我们的API。如果您确实拥有自己的API后端,那么让我们在开发服务器中配置我们的后端。...从目前我们所知道的,我们正在从服务器上下载一张卡片列表,我们需要将它们合并到我们的服务器中State。...从我们的日志中可以看出,我们正在明确调度Action,但没有服务器请求在这里为我们提供。怎么了?我们忘了将我们的效果加载到我们的AppModule中。

    42.6K10

    2018-08-05 没有测试用例的代码,根本不应该跑在服务器上

    在实际测试中,一个单元可以小到一个方法,也可以大到包含多个类。从定义上讲,单元测试和集成测试是有严格的区分的,但是在实际开发中它们可能并没有那么严格的界限。...契约测试 契约测试会给每个服务生成一个 Stub,可以用于调用方的单元/集成测试。例如,我们需要测试预约服务的预约操作,而预约操作会调用用户服务,去验证用户的一些基本信息,比如医生是否认证等。...Stub,当然在测试的时候,我们需要把服务调用接口的 baseUrl 设置为http://localhost:6565。...注意上面提到很重要一点是,单元测试必须是有效的,如果我们发现单元测试很难维护,那往往是因为我们没有写出有效的单元测试。...被测代码应该是抽象良好的 如果我们发现一段代码很难编写单元测试,常常是因为这段代码没有符合良好的抽象规范,比如没有使用 DI、不符合单一职责原则、或者依赖了全局的公共变量和方法等等。

    1.4K50

    【译】我是如何学习任意前端框架的

    在这篇文章中,真实的测试伴随着现实中的真正问题,会带给你些启发,并应用在你选择的任何前端框架的项目中。 笔记: 该主题中列出的项目难度逐渐递增,每个项目会在前一个项目基础中增加。...某些页面只允许通过身份验证的用户(访问) 如何发送并保存JWT(JSON Web令牌)以发出需要经过身份验证的用户请求 3.CRUD App 增删查改的应用程序是本节中最受欢迎的前端应用程序,你可以使用本地存储或者使用在线服务...put、delete、post和get的HTTP请求 将你的应用程序和任意后端框架集成 尝试为后端框架添加auth功能 4.聊天应用 在前面的章节中,对后端的所有请求都是单向的,你在管理应用程序状态时没有问题...你将学到: 学习如何使用管理状态解决方案,如redux for react, ngrx for angular 2+ 或 vuex for vuejs以及如何将其与客户端应用程序集成 使你的应用更灵活

    3.6K10

    2019 前端框架对比及评测

    公平地说,某些实现的功能要略微多一点,但这应该没有什么显著的影响。我们仅仅测量每个应用的 src/ 目录。 性能 我们将使用 Chrome 的 Lighthouse Audit 测试性能。...配置 所有测试均使用如下配置: [Lighthouse Audit 配置] 性能评分基于以下测度得出: First Contentful Paint (页面中内容元素首次渲染时间) First Meaningful...尺寸 传输尺寸根据 Chrome 开发者工具的网络标签页统计,包括服务器送达的响应头和响应体(经过 GZIP 压缩)。 这取决于框架的尺寸以及额外依赖的尺寸,还有构建工具精简未使用代码的效率。...Angular+ngrx 只计算了 libs 目录中的 .ts 和 .html 文件,如果你认为这么算不对,请告诉我正确的数字及其计算方法。...RealWorld 的意思是这个应用会像真实世界项目一样,连接一个服务器,认证用户,允许用户增删改查。 3. 你为什么没纳入我最喜欢的框架? 请回过头去看看上文的第一问。

    1.3K00

    2019-Web开发技术指南和趋势

    HTML/CSS框架目前没有以前那么有意义, 但是我还是介意你选择一个学习(这里作者想隐射的应该是, 在jquery时代, HTML/CSS框架的学习是必须的)....对于使用框架的大型前端项目, 你也许需要使用状态管理工具去管理你的应用级的状态 Redux(Context API) Apollo(GraphQL Client) Vuex NgRx 2.5 满足一个成熟的前端开发者条件...Azure) 可视化(Docker, Vagrant) 测试 (单元测试, 集成测试, 函数式测试, 系统测试) 3.7 满足全栈工程师的条件 ?...设置全栈的开发环境和工作流 构建后端服务API和微服务 数据库操作 能够独立开发应用(前端和服务端) 部署到云端(SSH, Git, Servers等等) 4. 2019技术趋势和其他 4.1原生应用开发...无需创建和管理自己的服务器 使用第三服务执行“无服务器功能” 例如 AWS, Netify & Firebase 在Gatsby静态站点生成器很流行 无服务框架 4.6 AI和机器学习 ?

    3.4K20

    2019-Web开发技术指南和趋势

    HTML/CSS框架目前没有以前那么有意义, 但是我还是介意你选择一个学习(这里作者想隐射的应该是, 在jquery时代, HTML/CSS框架的学习是必须的)....对于使用框架的大型前端项目, 你也许需要使用状态管理工具去管理你的应用级的状态 Redux(Context API) Apollo(GraphQL Client) Vuex NgRx 2.5 满足一个成熟的前端开发者条件...Azure) 可视化(Docker, Vagrant) 测试 (单元测试, 集成测试, 函数式测试, 系统测试) 3.7 满足全栈工程师的条件 ?...设置全栈的开发环境和工作流 构建后端服务API和微服务 数据库操作 能够独立开发应用(前端和服务端) 部署到云端(SSH, Git, Servers等等) 4. 2019技术趋势和其他 4.1原生应用开发...无需创建和管理自己的服务器 使用第三服务执行“无服务器功能” 例如 AWS, Netify & Firebase 在Gatsby静态站点生成器很流行 无服务框架 4.6 AI和机器学习 ?

    3.3K20

    在同一基准下对前端框架进行比较

    GZIPped 响应头加上服务器提供的响应主体。这取决于框架的大小和你添加的额外依赖项,以及构建工具如何消除捆绑包中未使用的代码。 简述 文件越小,下载越快,解析越少。 ?...Stencil 这个基准测试中的新手也表现不错。两者都相对较新,正在推动大小方面的限制。 指标 #3:代码行数 我们用了 cloc 计算每个 repo 的 src 文件夹中的代码行数。...注意 Angular + ngrx:在 /libs 文件夹内完成的代码行数计算,仅包括*.ts 和 *.html 文件。如果你觉得这是错的,请告诉我正确的值是多少,以及你是如何计算的。...常见问题 #1 为什么在这个比较中没有框架 X、Y 和 Z ? 因为 RealWorld repo 没有完成它的实现。你可以考虑贡献自己的代码!...我们所说的 RealWorld 是一个连接到服务器,验证并允许用户进行 CRUD 操作的程序 —— 就像真实世界的程序一样。 #3 为什么不包含我最喜欢的框架?

    96020

    这些必备的VSCode JavaScript插件你都用过吗?

    Path IntelliSense(它其实与Node没有关系,但是你肯定需要对本地文件的智能提示,这个插件会自动补全文件名。) Node exec(允许你用Node执行当前文件或者选中的代码。)...Live Server(开启本地开发时服务器,为静态和动态页面提供实时刷新功能。源码(vscode-chrome-debugvscode-live-server。) ? 3....Preview on Web Server(提供web服务器和实时预览功能。) 4. PHP Server(对测试只能在客户端运行的JavaScript代码很有用。) 5....然而,仍有一些特定框架没有得到完全的支持。下面是一些提供了强大功能的VS Code插件。...Angular 6(提供Angular 6的代码片段,支持TypeScript、HTML、Angular Material ngRx、RxJS和Flex Layout。

    6K10

    云计算背景下的安与不安

    服务提供商采用的安全标准不统一,这使得企业用户在选择时很迷惑。 没有经过充分了解和评估云计算服务提供商的系统环境和相关风险,就贸然采用云服务。...完全依赖云服务供应商的安全性,没有将云服务供应商的安全策略与企业本身的安全策略结合到一起。 没有做好监督工作。...云服务提供商如何将数据返还给用户?企业用户需要在合同中明确数据应以哪类格式进行返还,而且返还的数据格式最好无论何时都能轻松使用。通过测试确保云服务供应商有能力满足合同中的约定。...与云服务提供商签订的安全条款内容应尽可能详细,将防止未授权访问、安全标准年度认证以及定期的漏洞测试等内容都以明文的方式列入合同。 将云安全与企业自身的安全策略结合到一起。...以及内部身份管理系统和云提供商提供的API扩展属性之间具有连续性吗?向云服务提供商提出要求,能够对API进行渗透测试和漏洞评估。

    1.5K80

    云计算与企业自身安全策略结合到一起

    服务提供商采用的安全标准不统一,这使得企业用户在选择时很迷惑。 没有经过充分了解和评估云计算服务提供商的系统环境和相关风险,就贸然采用云服务。...完全依赖云服务供应商的安全性,没有将云服务供应商的安全策略与企业本身的安全策略结合到一起。 没有做好监督工作。...云服务提供商如何将数据返还给用户?企业用户需要在合同中明确数据应以哪类格式进行返还,而且返还的数据格式最好无论何时都能轻松使用。通过测试确保云服务供应商有能力满足合同中的约定。...与云服务提供商签订的安全条款内容应尽可能详细,将防止未授权访问、安全标准年度认证以及定期的漏洞测试等内容都以明文的方式列入合同。 将云安全与企业自身的安全策略结合到一起。...以及内部身份管理系统和云提供商提供的API扩展属性之间具有连续性吗?向云服务提供商提出要求,能够对API进行渗透测试和漏洞评估。

    1.2K60

    服务器计算简介:第1部分

    最近大肆宣传的技术趋势是无服务器计算。有些人可能会认为(顾名思义)无服务器计算中没有服务器。有些服务器运行我们的代码,但这些服务器在基础架构中不可见,并且不需要开发或运营团队进行管理,处理或配置。...最近,人们开始将无服务器称为BaaS(后端即服务)。BaaS和FaaS的操作属性(例如,没有资源管理)是相关的,并且经常一起使用。...同样,如果你正在做微服务,那么无服务器也是一种让人持开放态度的东西。 无服务器计算的主要优点 没有服务器管理 当我们使用云提供商提供无服务器产品时,开发人员不会进行任何服务器管理和容量规划。...自动化高可用性和容错 这些功能正在服务器上运行,这些服务器自动部署在云服务提供商的各个可用区域中。这使他们高度可用。高可用性和容错自动来自底层提供商。开发人员不需要专门为此编程。...测试 由于编写的代码是您编写的“只是代码”,并且在大多数情况下,您不必使用或实现任何自定义库,因此单元测试非常简单。另一方面,集成测试是一项巨大的挑战。一起测试所有功能非常耗时并且需要付出很大的努力。

    2.1K30

    供应商的游戏系统将提高宽带速度

    “虽然速度测试可以作为有用的体验指标,但是我们获得的最重要的反馈是直接从客户那里获得的。如果客户没有获得出色的宽带速度性能,我们将与他们合作,直到问题解决为止。”...无偏测试路线处理 AT&T发言人迈克尔·巴尔莫里斯(Michael Balmoris)表示,从技术上讲,互联网服务提供商不可能给测试速度的路由提供比其他路由更好的处理。...FCC没有回应我们对此事发表评论的要求。 华盛顿特区技术智囊团TechFreedom的总裁Berin Szoka指出,FCC并不仅仅是负责确保服务提供商公平地对待消费者。...在两年前通过的该谅解备忘录中,联邦贸易委员会(FTC)同意“对互联网服务提供商进行调查,并针对不公平,欺骗性或其他非法行为的做法,对互联网服务提供商采取适当的执法措施,包括但不限于与这些提供商根据互联网自由命令所作行为公开的准确性...他继续说:“在过去的一年中,美国的家庭更换宽带服务是为了获得更好的价格,而有36%的家庭通过交换来获得更好的速度。” “家庭没有看到速度升级的好处,尤其是在提供商使家庭根据价格进行区分的情况下。”

    45130

    云计算的8种方式比人们想象的更复杂

    云计算已经在企业IT中变得如此根深蒂固,以至于没有它就越来越难以开展业务。尽管如此,迁移到云服务并非没有困难,其中一些困难可能完全出乎意料。...专业服务和咨询机构埃森哲公司最近的一份报告指出,三分之二的大型企业没有意识到其云迁移之旅带来的好处,其主要障碍是业务和运营的复杂性。...首先,企业在本地使用的服务可能无法在云中随时使用。” 企业可以使用基础设施即服务(IaaS)来使用这些服务。但是,这面临着与内部部署硬件相同的配置和维护的挑战,并且没有利用简化基础设施的云计算承诺。...Powell说,“云计算提供商可能提供替代或竞争服务以满足企业的需求,但这些服务带来了新的术语和学习曲线。” 这些服务也可能受到地理位置的限制,因为并非提供商提供的所有地区都提供所有服务。...7.保持强大的安全性 许多云计算服务提供商都在宣传其基础设施的强大安全性,但这并不意味着云计算的使用没有数据保护问题。

    41920
    领券