问题标签 [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 投票
3 回答
33835 浏览

angular - 在 Angular 2 中测试 ngOnChanges 生命周期钩子

给定以下代码,我尝试测试ngOnChangesAngular2 的生命周期钩子:

不幸的是,测试失败并显示消息Expected spy ngOnChanges to have been called.我知道我可以在此示例中检查 HTML 元素的内容,但我有一些代码需要在 ngOnChanes 生命周期挂钩内进行测试,所以这不是我的解决方案。我也不想testComponent.ngOnChanges({someMockData});直接调用测试。

如何TestComponent.value从测试中设置它以便ngOnChanges调用?

0 投票
1 回答
378 浏览

angular - 如何通过在我的规范文件中创建 angular2 组件的新实例来调用方法?

我有 myComponent 其中包含method1,method2ngOnInit.

这是该组件的 html 模板:

这是我的规格文件。我需要确保插入的任何值都转换为大写。

我希望将值“g”设置为等于“g”,并检查调用后是否返回“G” method1()

问题 :

1.在创建myComponent实例时传递fixture.nativeElement作为参数对吗?
2. 另外,如果您可以帮助我测试组件内部调用的 $.JSON 方法。如何模拟 JSON 请求?

0 投票
2 回答
401 浏览

angular - 无法在规范文件中为 http-get 请求“订阅”到“Observable”

我想测试以下返回 observable 的服务:

我的规格文件:

调试时,不执行 subscribe 方法。结果我的测试用例在没有被执行的情况下通过了。我错过了什么?
PS:MyService 目前没有在组件内部使用/调用。

0 投票
2 回答
1815 浏览

angular - Angular 2.0.0-rc.1:如何在视图或内容上测试元素(例如@ViewChildren、@ContentChildren)

我有一个组件从服务中获取数据,该服务在View. 这些子级仅在View创建时可用。在我下面的示例中,View在它到达测试之前没有创建它,因此测试 2 失败。

零件:

规格:

测试 1 通过,测试 2 失败。你如何测试在初始化之后创建的View东西?Content

0 投票
1 回答
96 浏览

angular - 在Angular 2中使用beforeEach的DI

我想做以下事情:

回调注入永远不会被调用。我是否遗漏了什么,或者这必须是一个更复杂的解决方案?

0 投票
1 回答
435 浏览

jquery-ui - Angular2 + jquery自动完成组件:无法在规范文件中调用组件上的方法

我在 angular2 内部使用了 jquery 自动完成方法,它调用服务从 api 获取数据。这是myComponent.ts

myComponent.html

我发现很难测试代码,因为它混合了 angular 和 jquery(我知道这不好)。但是现在,我想从我的测试文件中调用 method1、method2、mainMethod、anotherMethod 以获得更多的代码覆盖率。

myComponent.spec.ts文件:

即使对于调用 method1 和 method2,我也无法在规范中模拟 this.myVar 吗?我应该如何测试各种方法?

0 投票
1 回答
2466 浏览

angular - Angular2/testing:如何使用模拟服务提供者运行测试?

Angular2 测试

我想使用模拟服务而不是实际服务来运行我的组件。我在 beforeEachProviders 中提供了模拟服务(MockMyService),它仍然在调用实际的服务。

0 投票
1 回答
198 浏览

javascript - Typescript + Angular2 测试因 JS 库依赖而失败

我在 Angular2 项目中使用 jsfeat javascript 库。

我把它放在我的 .ts 和 .spec.ts 文件的开头:

我在 index.html 中包含了 jsfeat.js。

现在我想运行 Angular2 测试,但我得到:

测试代码为:

0 投票
2 回答
2853 浏览

angular - 使用 Angular 2 的 TestComponentBuilder 让我很困惑

我正在开发一个 Angular 2-rc3 应用程序,我设置了一些单元测试,它们正在工作,是的!我只是不明白为什么必须按照他们的方式编写它们。更令人惊奇的是,看到所有 例子都有相同的方法。具体来说,这些问题是我的首要问题:

  1. 为什么TestComponentBuilder在每个单元测试中都配置?

    这已经是每个单元测试额外的七行代码,我的代码的可读性因此受到很大影响。我试过把它放在beforeEach()

    但是 Karma 似乎无法处理异步,thenjust 中的所有内容都没有被执行。这是一个错误还是这是故意的,我们不应该这样做吗?

  2. 为什么这个组件的创建需要异步发生?TestComponentBuilder 类createSync()上有一个,我们不能使用它吗?当然我试过了,发现函数签名不同:和. 为什么我们这里需要一个组件工厂,为什么我们在创建组件异步时不需要它?// 更新:RC4 已经发布,现在接受一个类型。伟大的。createAsync(rootComponentType: Type) : Promise<ComponentFixture<any>>createSync(componentFactory: ComponentFactory<C>) : ComponentFixture<C>createSync()

我的理智已经谢谢你了!

0 投票
3 回答
4249 浏览

unit-testing - 使用 Jasmine 进行 Angular2 测试,mouseenter/mouseleave-test

我有一个 HighlightDirective,如果鼠标进入一个区域,它会突出显示,例如:

现在我想测试是否在事件中调用了(正确的)方法。所以是这样的:

使用测试类:

现在,我得到了消息:

失败:div.mouseenter 不是函数

那么,有谁知道,哪个是正确的功能(如果存在)?我已经尝试过使用 click() ..

谢谢!