如何通过 Angular 2+ 中的单元测试避免依赖地狱

2024-04-23

我看到很多关于如何在 Angular 2+ 中对简单组件进行单元测试的示例,但是当涉及到使用服务的测试组件时,维护测试床提供程序和导入就变成了一场噩梦。 我怎样才能避免它?

例如,我有 myComponents,它使用 myService,它使用 HttpClient。 为了测试 myComponent,我必须设置 myService 和 HttpClient 的提供程序。 如果我向 myService 的构造函数添加其他服务,我将必须编辑使用该服务的 cmoponents 的所有测试平台。

我不能告诉测试台获取这些模块的默认依赖项吗?


该问题是由错误的测试方法造成的。单元测试是关于测试单个单元。

在这种情况下

myComponents 使用 myService,myService 使用 HttpClient。为了测试 myComponent,我必须设置 myService 和 HttpClient 的提供程序。

it is myComponent它测试的单位。这意味着任何其他单元都应该被嘲笑或存根,包括myService.

虽然这

获取这些模块的默认依赖项

不被视为单元,而是集成/e2e 测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Angular 2+ 中的单元测试避免依赖地狱 的相关文章

  • 收到错误 ../node_modules/rxjs/Rx"' 没有导出成员 'of'

    我正在从教程中学习新的角度 https angular io tutorial toh pt4 inject message service https angular io tutorial toh pt4 inject message
  • 如何在 Angular 库中包含图像?

    我创建了一个简单的 Angular 库 我希望我的库也显示图像 问题是 如果我将图像包含在库的模块文件夹中 然后从模块内部引用它 则会收到 404 错误 据我所知 在 Angular 项目中 图像必须放置在 assets 文件夹中 但我确实
  • mocha-phantomjs 回调函数测试用例

    我有一个模块 其中有此功能 flickrPhotoSearch function searchByName flickrUserKey numberOfImages callbackData return ajax url commonCo
  • 在 Angular 中使用 Vue 组件

    我有一个用 Vue 构建的项目 我想在 Angular 应用程序中重用 Vue 应用程序中的组件 这样我就不必从头开始重建每个组件 我在medium上看到了这个教程 如何在 Angular 应用程序中使用 Vue 2 0 组件 https
  • 使用cameltestsupport进行Camel单元测试,模板始终为空

    我正在用 Camel 做一个简单的单元测试 我想做的就是从文件 在资源下 读取 JSON 内容 将其发送到 Java 类进行验证 这是我试图测试的路线 无论我做什么 模板 我用来发送正文 json 始终为空 这是我的代码 public cl
  • Angular 5 - 使用对象进行表单控制

    我目前正在开发一个由 Django 支持的 Angular 应用程序 该应用程序的一部分是它需要显示成员列表 成员数组看起来有点像这样 name John Smith id 3 score set name Jane Doe id 7 sc
  • TypeScript 编译速度极慢 > 12 秒

    只是把它放在那里看看其他人是否也遇到这个问题 我已经使用 webpack 作为我的构建工具 使用 typescript 构建了一个 Angular 2 应用程序 一切都运行良好 但是我注意到 typescript 编译超级超级慢 我现在只有
  • 如何在 Angular 4 项目中使用 ActiveXObject

    我正在尝试使用 ActiveXObject 如下所示 getActiveXObject pdfCtrl return new ActiveXObject pdfCtrl checkPDF let plugin null if this ge
  • 如何使 Angular2 Service 单例?

    我正在尝试在我的应用程序中实现身份验证防护 IE 只有经过身份验证的用户才能访问我的应用程序的某些路由 我正在遵循给出的意见here https angular io docs ts latest guide router html 用户登
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • vue-test-utils:如何测试 Mounted() 生命周期挂钩中的逻辑(使用 vuex)?

    我正在尝试为 Vue 中的逻辑编写一个单元测试mounted 生命周期钩子 但运气不太好 问题似乎是这样的mounted 使用 vue test utils 安装组件时永远不会被调用mount 这是我要测试的 Vue 组件
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 如何在 angular2 中触发表单验证器?

    我创建了 angular2 Web 应用程序 我已经使用表单生成器实现了一个自定义验证器 它将在提交时工作 但我需要在其他表单控件值更改中动态触发验证 请任何人提出建议来实现这一目标 谢谢 尝试这个 this RegisterForm1 c
  • Typescript:按值检查对象是否存在于数组中

    我有这个数据 roles roleId 69801 role ADMIN roleId 69806 role SUPER ADMIN roleId 69805 role RB roleId 69804 role PILOTE roleId
  • 浏览器中缺少 Angular 12 源地图

    我们已经升级到角12最近遇到一个问题 即浏览器源映射丢失 因此我们无法调试我们的组件文件 因为没有任何组件文件 谁能建议我缺少什么 Angular 12 更改了默认的 ng build 以使用 生产 配置 你想要 sourceMap 所以尝
  • 如何在 Angular 中实现使用 google 登录

    我正在尝试在我的角度应用程序中实现谷歌登录功能 我这里用了两个包 abacritt angularx social login and angular oauth2 oidc 我创建了一个名为的自定义提供程序google authentic
  • 如何将测试类打包到jar中而不运行它们?

    我正在努力将我的测试类包含到 jar 包中 但不运行它们 经过一番谷歌搜索后 我尝试过mvn package DskipTests 但我的测试类根本没有添加到 jar 中 有任何想法吗 如果您遵循 Maven 约定 那么您的测试类位于src
  • 单元测试、集成测试还是设计中的问题?

    我编写了我的第一个单元测试 我认为它过于依赖其他模块 我不确定是否是因为 这是一个复杂的测试 我实际上已经编写了集成测试或 我的设计有问题 我首先要说的是 虽然我有大约 4 年的开发经验 但我从未学过 也没有人教过自动化测试 我刚刚使用 H
  • React Native - 在单元测试中模拟 FormData

    我在测试我的 thunk 时遇到问题 因为我的许多 API 调用都使用 FormData 而且我似乎不知道如何在测试中模拟它 我正在使用杰斯特 我的安装文件如下所示 import isomorphic fetch Mocking the g
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定

随机推荐