小编Ole*_*kov的帖子

Angular 2. 在单元测试中发出悬停事件

我有一些(MyCmp)组件(<my-cmp></my-cmp>)这样的模板

<template ngFor let-r [ngForOf]="range" let-index="index">
  <span>{{ index < 5 ? 'Y' : 'N' }}, {{r.data}}</span>
  <i (mouseenter)="somefunc()" (click)="elefunc()"></i>
  ....
</template>
Run Code Online (Sandbox Code Playgroud)

我通过特殊的 TestComponent 为 MyCmp 组件配置 TestBed

TestBed.configureTestingModule({declarations: [TestComponent], imports: [MyModule]}
TestBed.overrideComponent(TestComponent, {set: {template: '<my-cmp></my-cmp>'}});
fixture = TestBed.createComponent(TestComponent);
context = fixture.debugElement.componentInstance;
element = fixture.nativeElement;
fixture.detectChanges();
Run Code Online (Sandbox Code Playgroud)

我认为这并不重要。测试有效。

element.querySelectorAll('i')[0].click(); //fine
Run Code Online (Sandbox Code Playgroud)

但我不知道我应该如何发出悬停(mouseenter)和mouseleave事件

element.querySelectorAll('i')[0].hover() // not a function
element.querySelectorAll('i')[0].mouseover() // not a function
element.querySelectorAll('i')[0].createMouseEvent('mouseover') // not a function
Run Code Online (Sandbox Code Playgroud)

events unit-testing angular

7
推荐指数
1
解决办法
5694
查看次数

docker 里面的僵尸

我有一个 docker 容器,它运行 node.js 应用程序。该应用程序运行一个 headless-chrome 实例。

一切正常,但如果我杀死 chrome-instance,并检查运行的进程列表,我将看到 2 个(实际上是 3 + 2 个 cat 进程)僵尸 chrome 进程(已失效)仍在系统中。我知道这个进程是一个子进程(被杀死的chrome 进程的),它没有正确完成并附加到init进程。

我试图直接杀死它——被拒绝了。另外,我尝试使用detached:true标志生成 chrome,并再次直接杀死所有子进程,当主 chrome 收到“退出”信号时,无论如何向我ps -A | grep chrome显示两个已失效的进程。有任何想法吗?

UPD: 感谢大家的帮助。添加--init完全解决了我的问题。使用另一个基础图像也效果很好,但我认为这种方法没有必要。还可以在这里找到根本原因的详细描述

linux google-chrome node.js docker

5
推荐指数
2
解决办法
3343
查看次数

标签 统计

angular ×1

docker ×1

events ×1

google-chrome ×1

linux ×1

node.js ×1

unit-testing ×1