问题标签 [angular2-testing]
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.
unit-testing - 使用 MockBackend 测试然后调用 .map 的函数
我正在尝试为发出 Http 请求的服务编写单元测试。
我有一个服务,它返回一个Http.get()
请求,后跟一个.map()
. 我无法让我的模拟后端返回在.map()
. 我得到的错误是:
我一直使用这篇文章作为我的主要指南。
如果我.map()
从我的服务功能中删除,我不会收到任何错误。如何让我的模拟响应拥有一个.map()
我可以调用的函数?
注意:我目前使用的是 RC.4
这是我的服务:
这是我的规范文件,它使用MockBackend
和其他相关库来模拟这些测试的后端:
asynchronous - 测试异步 PipeTransform
语境
我有一个基本的PipeTransform
,期望它是异步的。为什么?因为我有自己的 i18n 服务(由于解析、复数和其他限制,我自己做了),它返回一个Promise<string>
:
该管道运行良好,因为唯一延迟的调用是第一个调用(I18nService
使用延迟加载,只有在找不到密钥时才加载 JSON 数据,所以基本上,第一个调用将被延迟,其他调用是即时的但仍然异步)。
问题
我不知道如何使用 来测试这个管道Jasmine
,因为它在一个我知道它可以工作的组件中工作,但这里的目标是使用 jasmine 对其进行全面测试,这样我就可以将它添加到 CI 例程中。
上述测试:
失败是因为由于给出的结果I18nService
是异步的,所以返回的值在同步逻辑中是未定义的。
I18n 管道测试可以调用 I18n.get。失败的
预期未定义为“测试值”。
编辑:一种方法是使用setTimeout
,但我想要一个更漂亮的解决方案,以避免setTimeout(myAssertion, 100)
到处添加。
angular - 没有 AngularFire 的提供者
我正在使用 AngularFire2。运行测试时出现此异常。
这是我的测试的样子:
我猜AngularFire不能被注入,因为它是一个函数?
angular - 为什么 Angular2 TestBed 的 compileComponents 找不到我的模板?
我有一个组件,我们称之为 MyComponent。它使用 my.component.html 作为 templateUrl。
我正在为此组件编写测试(规范)。因为它使用的是外部模板,所以我在configureTestingModule之后调用compileComponents。
运行测试时,我收到此错误 -
无法加载 my.component.html
该应用程序可以通过npm start运行并按应有的方式提供模板。这只是给定设置失败的测试。我做错了什么?
我正在关注本教程。
node.js - 如何在没有业力的情况下使用 mocha 在 nodejs 中测试 Angular2 管道
我希望能够纯粹在 nodejs 环境中测试 Angular2 管道,而不包括业力等。
可以使用 typescript 文件作为 mocha 的测试套件
https://templecoding.com/blog/2016/05/05/unit-testing-with-typescript-and-mocha/
但是当我有一个import {Pipe} from '@angular/core'
它给了我
即使我写require('reflect-metadata')
在我的测试文件中,它仍然会因同样的错误而中断。
Angular 内部有这个检查:
在需要 reflect-matadata 我确实Reflect
在全局对象上之后,但它仍然不起作用......
无论如何,有没有办法用 mocha 在 nodejs 中测试 Angular pipe purley?
我正在使用 webpack 捆绑应用程序,因此我在测试文件中要求的文件如下所示:
angular - 使用 routerLink 的 Angular 2 单元测试组件
我正在尝试使用 angular 2 final 测试我的组件,但由于组件使用了该routerLink
指令,因此出现错误。我收到以下错误:
无法绑定到“routerLink”,因为它不是“a”的已知属性。
这是ListComponent
模板的相关代码
这是我的测试。
我查看了类似问题的几个答案,但找不到适合我的解决方案。
testing - angular2 测试:无法绑定到“ngModel”,因为它不是“输入”的已知属性
我正在尝试测试 angular2 的双向绑定 control input
。这是错误:
app.component.html
app.component.ts
app.component.spec.ts
angular - Angular2测试服务——未定义服务
嗨,我正在尝试按照以下程序为我的服务编写单元测试:https ://developers.livechatinc.com/blog/testing-angular-2-apps-dependency-injection-and-components/但我不断收到错误消息。
这是服务测试
并且 this 的 console.log 是一个空对象,而 this.kibanaDataServices 只是未定义。我指定的路径是正确的,因为 kibana-data-services 和 kibana-data-services.spec.ts (这个测试文件)在同一个文件夹中,所以我不确定出了什么问题。
我得到的具体错误是:
更新:不使用“this”会导致“it”语句中未定义的错误
angular - Angular 2.0.0 使用路由器测试组件
给定以下组件:
我正在尝试编写一个单元测试:
这是错误消息:
任何帮助,将不胜感激!!
angular - 找不到管道“翻译”,angular2组件测试
我正在使用 angular2 进行组件测试。在我的 html 模板中,我使用翻译管道。这是测试的代码:
我收到此错误,翻译管道未知:
我们如何解决这个问题?
谢谢。