问题标签 [testbed]
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.
angular - 在不模拟后端的情况下测试 Angular 4 服务
我需要在不模拟后端的情况下测试 Angular 4 服务,但没有成功。
我的 beforeEach 如下:
..但由于某种原因,没有办法让Http真正调用API。我知道该服务正在运行,因为手动测试时可以。我相信 TestBed 提供了 Http 的模拟版本。
我想要这个,因为我需要真正记录 AuthService 才能进行我需要的测试。AuthService 保存用户的令牌信息和其他数据。
有人可以给我指示或指出一些工作示例来仅测试 Angular 4 服务吗?
谢谢。
angular - 如何在不使用 TestBed 的情况下模拟服务
我想在不触及外部模板的情况下为我的组件编写一些单元测试。但我不知道如何模拟我的组件所依赖的服务。
my-component.ts
my-component.spec.ts
another.service.ts
那行得通,但null
我不想模拟AnotherService
,所以我创建了一个模拟服务:
和
但是以ActivatedRoute为例,
不起作用。Typescript 要求我将 ActivatedRoute 类的所有属性添加到我的模拟中,如url、params、queryParams等。我该如何避免这种情况?
angular - Angular 2中兄弟姐妹之间的单元测试通信
有人如何测试 Angular 2 中 2 个兄弟组件之间的通信?我似乎没有在网上找到任何可行的资源。
app.component.html
whereget()
是组件中的一个函数,comp1
我将其值传递给 component 的类变量之一comp2
。我怎样才能有效地测试这个?
app.component
是 and 的父组件,comp1
并且comp2
包含它们。
angular - Angular TestBed 因 Webpack、Karma/Jasmine 而失败
我尝试使用 Angular.io 网站上描述的 Angular TestBed 来测试一个简单的组件,但我收到如下错误:TypeError: undefined is not an object (evaluating 'ProxyZoneSpec.assertPresent')
和 404,因为它无法加载外部组件模板。
如果我创建一个示例单元测试,而不使用/设置 TestBed,它可以正常工作,因此至少为项目正确设置了 Karma 和 Jasmine。该问题与 Angular TestBed 有关。除了 angular.io 还有其他文档吗?按照这些文档,它似乎不起作用。
业力.conf.js
组件.ts
组件.spec.ts
angular - 角度 4 单元测试问题 - 我想设置一个表单 FormControl 字段值
我在单元测试中设置名为 searchUser 的 FormControl 字段的值时遇到问题。
在下面的代码中,“this.searchUser.value”是一个表单控件。所以在我的测试中我这样做了,所以我可以设置它但没有工作:
这是我正在测试的组件方法(mapUsers):
这是我的完整单元测试规范:
我得到的业力错误:
失败:无法设置只有 getter 的 [object Object] 的属性值
angular - 以角度测试具有真实后端的服务
我想测试一个服务,它调用一个真正的后端 url,但找不到解决方案。我的服务必须从服务器调用数据,我想确保数据到达服务并且服务正确处理它。
所以这只是我的登录服务的一个简单示例:
这就是我想要测试它的方式:
但我收到以下错误:TypeError:无法读取未定义的属性“登录”,因此服务必须未定义。我可以模拟该服务,但我想使用后端服务器上的真实数据库。
那么可能是什么问题,我该如何解决呢?
亲切的问候,
安德烈
angular - 使用 TestBed 进行 Angular2 结构指令测试
我们在 Angular 2 中实现了一个结构指令,只为具有特定角色的用户显示内容。在生产系统中,一切正常。
当我们使用 TestBed 实施一些测试时,问题就出现了。如果我们使用只包含字母和数字的角色作为输入(例如 APP1role1),一切正常。如果我们使用带有冒号等的角色。(例如 APP1:role1)我们得到一个错误:
模板解析错误:TypeError:无法读取未定义的属性“toUpperCase”
这是用于测试结构指令的规范组件:
我很确定角色输入中的“:”会导致问题。
有人知道为什么吗?帮助会很棒!
提前致谢
angular - 单元测试:即使添加到“提供者”,也没有“InterceptableStoreFactory”的提供者
我正在我的 Angular 应用程序中进行单元测试,我正在使用 TestBed 方法,
我正在测试组件,所以每个规范文件看起来像这样
如果依赖项导入不好,这种测试方法会导致整个测试套件失败。
例如:在这个测试套件中,它会抛出这个错误:
没有InterceptableStoreFactory的提供者!这似乎很奇怪,因为我正在我的提供商中导入此服务(最后一个)
这导致几乎所有测试用例的失败,因为夹具导入的验证是“ beforeEach ”测试用例
我正在寻找更好的想法:
- “没有服务提供者”的问题(已添加到提供者中)
并且对于
- 单元测试床更好的测试方式
angular - 异步测试确实通过所有功能
当我尝试在 karma jasmine 中运行测试时,它应该通过 2 个服务。然而,它一直到最后一个函数,但它没有返回它的返回值。有谁知道它如何不返回某些东西?
我之前的每个
我的测试本身
填充数据库函数
填充袋功能
IntlliJ 上的测试输出
cmd 上的测试输出
这里也有一些奇怪的东西。Calling getJsonFromFile
。_ 在我的 app.component.ts 里面。但我不会在任何地方调用它。
日志所在的函数是
正如你所看到的,我确实进入了我的填充袋。但是它不会返回推送。或任何沿线的东西。