我有一个plunkr,并且在尝试按照网络上的一些建议而没有成功之后,一直试图弄清楚如何测试EventEmitter。我想知道如何通过触发按钮来测试它...更多的组件测试。代码位于 voter.component.ts 和 voter.componet.spec.ts 文件中。对此的任何帮助将不胜感激。
it('should emit on up/down vote click', fakeAsync((): void => {
let fixture: ComponentFixture = TestBed.createComponent(VoterComponent);
let instance: VoterComponent = fixture.componentInstance;
spyOn(instance.onVote, 'emit');
let button = findElement(fixture, 'button:first-child');
button.click();
fixture.detectChanges();
tick();
expect(instance.onVote.emit).toHaveBeenCalled(1);
}));
答案 0 :(得分:1)
第一个观察是@Input和@Output装饰总是需要后跟一对括号,更多关于主题的详细信息here。
代码中的第二个问题是你在onVote()事件处理程序方法中增加了counter
而不是this.counter
。
另外,作为旁注,VoterComponent不需要在父(App)组件的指令数组中声明。