39得票5回答
当使用Angular中的*ngIf指令时,我如何使用Jasmine进行单元测试以确定一个元素是否可见?

我有一个 Angular 6 应用程序,并编写了一些单元测试,尝试仅基于 *ngIf 指令的布尔结果来确定元素是否可见。 标记:<div class="header" *ngIf="show"> <div>...</div> </div&gt...

37得票3回答
Angular - 组件中订阅函数的单元测试

Angular 4订阅的单元测试。 我想测试我的订阅返回一个用户数组。 我想模拟一组用户并测试一个名为 getUsers 的函数。 订阅单元测试无法工作。 语法有问题。 这是我的用户接口:export interface User { id: number; name: stri...

37得票2回答
在karma-jasmine中更新Jasmine的版本

问题 我该如何在通过Karma运行Jasmine时使用karma-jasmine插件更新Jasmine的版本? Jasmine仅在karma-jasmine插件集成新版本Jasmine时才会更新,还是我可以将karma-jasmine插件指向更新的Jasmine版本? karma-jasm...

37得票3回答
Angular测试:如何防止ngOnInit调用以直接测试一个方法

背景 我有一个组件,在组件的ngOnInit函数中调用另一个函数来检索用户列表。 我想进行两个系列的测试: 首先测试ngOnInit是否正确触发并填充用户列表 其次,我想测试刷新功能,该功能也会调用getUserList() 第一个测试,使用ngOnInit触发,当我调用fixtur...

35得票2回答
Angular测试中,fakeAsync和async有什么区别?

我知道tick()函数使用了fakeAsync()。同时我也可以在async()和fakeAsync()中使用fixture.whenStable().then()。 我想知道它们各自的确切用法。能否有人用示例来解释一下。 注意:我想在这两种情况下都使用Fake Service或Stub。

34得票2回答
何时在Angular中使用waitForAsync

从文档中我们可以看到: waitForAsync(fn: Function): (done: any) => any 将测试函数封装在一个异步测试区域中。当此区域中所有异步调用完成时,测试将自动完成。可以用来封装一个 inject 调用。 我不明白何时使用 waitForAsync ...

33得票2回答
Karma: 在WSL中使用Windows的Chrome。

我将尝试使用Windows版本的Google Chrome从WSL启动karma。 在karma.conf.js中,我只是使用Chrome浏览器: [...], browsers: ['Chrome'], [...] 我设置 CHROME_BIN 环境变量的导出方式如下: expor...

31得票3回答
Angular 2正式版路由器单元测试

如何使用karma和jasmine在Angular 2.0.0中单元测试路由器? 这是我在2.0.0-beta.14版本中旧的单元测试样式。 import { it, inject, injectAsync, beforeEach, beforeEachP...

31得票6回答
错误: <spyOn>:fromEvent未声明可写或没有setter

旧代码使用 rxjs v5.5.12,我们将同样的代码复制到了使用 rxjs v6.4.0 的新项目中。当我们尝试运行测试用例时出现了这个错误。 旧代码: The old code uses rxjs v5.5.12, We copied the same code to our new...

30得票1回答
npm的“Skipping failed optional dependency”是什么意思?

最新的node和npm版本导致运行karma出现问题。当我尝试安装karma-cli npm i -g karma karma-cli时,会得到以下警告: npm WARN optional Skipping failed optional dependency /chokidar/fsev...