问题标签 [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.

0 投票
1 回答
170 浏览

angular - 如何在 angular2 RC5 中测试这个服务?

我现在正在学习 angular2 RC5。我想在 angular2 RC5 中测试以下服务,但我无法以某种方式对其进行配置。

我想测试这个服务中的每个方法,有什么输入吗?

0 投票
2 回答
12633 浏览

angular - Angular2 RC5 模拟激活路由参数

我需要能够模拟激活的路由参数才能测试我的组件。

到目前为止,这是我最好的尝试,但它不起作用。

ActivatedRoute 在实际组件中使用如下:

我当前尝试得到的错误很简单:

TypeError: undefined is not a constructor (evaluating 'this.route.params.subscribe')

任何帮助将不胜感激。

0 投票
1 回答
6188 浏览

angular - 如何在Angular2中使用MockBackend对Http post、put、delete进行单元测试?

所以我正在测试我的 angular2 组件和服务。

到目前为止,我已经使用 mockBackend 来模拟服务中的 get 请求,如下所示:

如果你想看到我的 service.ts 如下:

从上述服务中,我已经在我的 service.spec.ts 文件中正确实现了 getAllPages() 和 getPageById() 方法,因为它们工作正常。

我想知道如何为方法实现测试用例savePage() , updatePage() , deletePage()

有什么输入吗?

提前致谢。

0 投票
1 回答
3377 浏览

angularjs - 由于 RC6 不推荐使用 addProvider,如何在 angular2 jasmine 测试规范中添加提供程序?

我正在尝试这样写beforeEach,以便每个人都能it获得所需的模块/提供程序:

但是由于addProviders方法在 RC6 中已被弃用,添加我的提供程序的更好选择是什么?

0 投票
1 回答
1777 浏览

angular - ngOnInit 中的 Angular 2 RC5 测试承诺不起作用

我正在尝试使用 Jasmine 测试名为 MyDirective 的结构指令。使用的 Angular 版本是 RC5。

getData 方法在 MockService 类中被覆盖,而 isValid 方法(MyService 的静态方法)被直接调用,用于检查数据的有效性。

第二个it应该创建一个 span 元素在 DOM 中的情况,但事实并非如此。我检查它是否进入 if 语句中的第一个条件,如下所示:

它记录下来。因此,它应该将元素保留在 DOM 中,但我找不到测试它的方法。

0 投票
1 回答
1620 浏览

angular - Angular2 - 使用 templateUrl 测试组件导致“未处理的承诺拒绝”

我目前正在编写一个简单的测试来测试一个 Angular 2 组件,该组件的模板被 templateUrl 引用。我目前正在使用 webpack 来执行所需的任务,包括测试。我正在关注Angular 网站上的 webpack 指南 以及 AngularClass 的angular2-webpack-starter repo

但是,当测试尝试创建组件夹具时,使用

我收到以下错误:

"'未处理的 Promise 拒绝:', '加载 app.component.html 失败', '; Zone:', 'ProxyZone', '; Task:', 'Promise.then', '; Value:', 'Failed to加载 app.component.html',"

因此显然导致测试失败。

在我的 app.component.ts 我通过 templateUrl 像这样引用模板

我环顾四周,但没有找到解决此错误的方法。请问有人知道这个问题吗?到目前为止我遇到的所有示例(例如,此 repo https://github.com/rangle/angular2-redux-example中的示例)都包含内联 html。

如果你想查看 webpack / karma 配置文件,这里是我的 repo 的链接。 https://github.com/jeanpaulattard/tourofheroes

编辑:更新了我的仓库主分支的链接。

0 投票
1 回答
369 浏览

angular - 在不创建新组件的情况下测试 Angular2 指令

我想用当前的 Angular2 版本(RC6)测试一个指令。

我从NG2 Test recipes中读到,要走的路是创建一个在模板中实现您的指令的临时组件。

现在这个解决方案似乎有点老套,并且通过添加一个可能会自行创建错误的类来增加简单测试的复杂性。如果我不想仅为此目的生成新组件怎么办?是否有直接的方法来测试指令?

我的指令:

0 投票
6 回答
27344 浏览

angular - 测试 - 无法解析 (ClassName) 的所有参数

语境

我创建了一个ApiService类来处理我们的自定义 API 查询,同时使用我们自己的序列化器和其他功能。

ApiService的构造函数签名是:

  • MetaManager是一个处理 api 元数据的可注入服务。
  • ApiConnectorService是一项服务,Http用于添加我们的自定义标头和签名系统。
  • EventDispatcher基本上是 Symfony 的事件调度系统,在 typescript 中。

问题

当我测试时ApiService,我在以下位置进行初始化beforeEach

它工作正常。

然后我添加我的第二个规范文件,即 for ApiConnectorService,其中beforeEach

所有测试都因此错误而失败:

错误:无法解析 ApiService 的所有参数:(MetaManager、?、EventDispatcher)。

  • 如果我从加载的测试中删除api-connector-service.spec.ts(ApiConnectorService的规范文件),ApiService则测试将成功。
  • 如果我从加载的测试中删除api-service.spec.ts(ApiService的规范文件),ApiConnectorService则测试将成功。

为什么我有这个错误?我的两个文件之间的上下文似乎存在冲突,我不知道为什么以及如何解决这个问题。

0 投票
1 回答
59890 浏览

unit-testing - 如何在 Angular2 中对 FormControl 进行单元测试

我的测试方法如下:

如您所见,paymentTerm 是一个返回 Observable 的表单控件,然后订阅该 Observable 并检查返回值。

我似乎找不到任何有关对 FormControl 进行单元测试的文档。我最接近的是这篇关于 Mocking Http requests 的文章,这是一个与它们返回 Observables 类似的概念,但我认为它并不完全适用。

作为参考,我使用的是 Angular RC5,使用 Karma 运行测试,框架是 Jasmine。

0 投票
0 回答
674 浏览

angular - Angular 2 RC6 测试:TypeError:无法读取 null 的属性“注入器”

经过几个小时的搜索解决方案后,我在测试我的 angular2 应用程序时仍然收到以下错误:

这是我的测试文件:

我的服务如下所示:

我也在使用 webpack,我称之为 initTestEnvironment。