0
我有一個在其模板的事件,作爲子組件的子組件:Angular2集成測試,如何測試調用其父方法在其模板
child.html
<a (click)="parent.onClick()"></a>
通常,當我去的測試活動angular2,我會做這樣的事情:與設置
child.spec.ts
it('',() => {
let menu = fixture.debugElement.nativeElement.querySelector('a');
menu.click();
fixture.detectChanges();
expect(something)
});
,看起來像:
BeforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ChildComponent]
providers: [ParentComponent]
})
.compileComponents();
但是在調用父級方法的情況下,孩子的模板中.click();永遠不要調用父母的方法。如果我將邏輯移動到子組件中,測試當然會起作用,但是,我想知道是否有方法測試當前安裝的click事件。
我發現它不正確地實現父母的onClick()方法... 你應該嘗試以不同的方式做到這一點,並建立組件之間的正確溝通,並通過它進行測試。 通常情況下,你永遠不需要提供你的'ParentComponent'。 試着更準確地說明你的目標是什麼以及'OnClick()'方法的作用,這可能會有所幫助。 –