问题标签 [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.
angular - 在 Angular 2 中测试 ngOnChanges 生命周期钩子
给定以下代码,我尝试测试ngOnChanges
Angular2 的生命周期钩子:
不幸的是,测试失败并显示消息Expected spy ngOnChanges to have been called.
我知道我可以在此示例中检查 HTML 元素的内容,但我有一些代码需要在 ngOnChanes 生命周期挂钩内进行测试,所以这不是我的解决方案。我也不想testComponent.ngOnChanges({someMockData});
直接调用测试。
如何TestComponent.value
从测试中设置它以便ngOnChanges
调用?
angular - 如何通过在我的规范文件中创建 angular2 组件的新实例来调用方法?
我有 myComponent 其中包含method1
,method2
和ngOnInit
.
这是该组件的 html 模板:
这是我的规格文件。我需要确保插入的任何值都转换为大写。
我希望将值“g”设置为等于“g”,并检查调用后是否返回“G” method1()
。
问题 :
1.在创建myComponent实例时传递fixture.nativeElement作为参数对吗?
2. 另外,如果您可以帮助我测试组件内部调用的 $.JSON 方法。如何模拟 JSON 请求?
angular - 无法在规范文件中为 http-get 请求“订阅”到“Observable”
我想测试以下返回 observable 的服务:
我的规格文件:
调试时,不执行 subscribe 方法。结果我的测试用例在没有被执行的情况下通过了。我错过了什么?
PS:MyService 目前没有在组件内部使用/调用。
angular - Angular 2.0.0-rc.1:如何在视图或内容上测试元素(例如@ViewChildren、@ContentChildren)
我有一个组件从服务中获取数据,该服务在View
. 这些子级仅在View
创建时可用。在我下面的示例中,View
在它到达测试之前没有创建它,因此测试 2 失败。
零件:
规格:
测试 1 通过,测试 2 失败。你如何测试在初始化之后创建的View
东西?Content
angular - 在Angular 2中使用beforeEach的DI
我想做以下事情:
回调注入永远不会被调用。我是否遗漏了什么,或者这必须是一个更复杂的解决方案?
jquery-ui - Angular2 + jquery自动完成组件:无法在规范文件中调用组件上的方法
我在 angular2 内部使用了 jquery 自动完成方法,它调用服务从 api 获取数据。这是myComponent.ts:
myComponent.html:
我发现很难测试代码,因为它混合了 angular 和 jquery(我知道这不好)。但是现在,我想从我的测试文件中调用 method1、method2、mainMethod、anotherMethod 以获得更多的代码覆盖率。
myComponent.spec.ts文件:
即使对于调用 method1 和 method2,我也无法在规范中模拟 this.myVar 吗?我应该如何测试各种方法?
angular - Angular2/testing:如何使用模拟服务提供者运行测试?
Angular2 测试
我想使用模拟服务而不是实际服务来运行我的组件。我在 beforeEachProviders 中提供了模拟服务(MockMyService),它仍然在调用实际的服务。
javascript - Typescript + Angular2 测试因 JS 库依赖而失败
我在 Angular2 项目中使用 jsfeat javascript 库。
我把它放在我的 .ts 和 .spec.ts 文件的开头:
我在 index.html 中包含了 jsfeat.js。
现在我想运行 Angular2 测试,但我得到:
测试代码为:
angular - 使用 Angular 2 的 TestComponentBuilder 让我很困惑
我正在开发一个 Angular 2-rc3 应用程序,我设置了一些单元测试,它们正在工作,是的!我只是不明白为什么必须按照他们的方式编写它们。更令人惊奇的是,我看到的所有 例子都有相同的方法。具体来说,这些问题是我的首要问题:
为什么
TestComponentBuilder
在每个单元测试中都配置?这已经是每个单元测试额外的七行代码,我的代码的可读性因此受到很大影响。我试过把它放在
beforeEach()
:但是 Karma 似乎无法处理异步,
then
just 中的所有内容都没有被执行。这是一个错误还是这是故意的,我们不应该这样做吗?为什么这个组件的创建需要异步发生?TestComponentBuilder 类
createSync()
上有一个,我们不能使用它吗?当然我试过了,发现函数签名不同:和. 为什么我们这里需要一个组件工厂,为什么我们在创建组件异步时不需要它?// 更新:RC4 已经发布,现在接受一个类型。伟大的。createAsync(rootComponentType: Type) : Promise<ComponentFixture<any>>
createSync(componentFactory: ComponentFactory<C>) : ComponentFixture<C>
createSync()
我的理智已经谢谢你了!
unit-testing - 使用 Jasmine 进行 Angular2 测试,mouseenter/mouseleave-test
我有一个 HighlightDirective,如果鼠标进入一个区域,它会突出显示,例如:
现在我想测试是否在事件中调用了(正确的)方法。所以是这样的:
使用测试类:
现在,我得到了消息:
失败:div.mouseenter 不是函数
那么,有谁知道,哪个是正确的功能(如果存在)?我已经尝试过使用 click() ..
谢谢!