我必须编写测试用例来调用函数中的函数。
openModel
函数编写单元测试。
@ViewChild(SecondComponent) public secondComponent: SecondComponent;
openModal() {
this.secondComponent.showModal();
}

showModal
功能的第二个组件。
@ViewChild(ModalComponent) public modalComponent: ModalComponent;
public showModal() {
this.modalComponent.showModal();
}

it(
'should open drop modal', () => {
const showModalSpy = spyOn(SecondComponent, 'showModal').and.callThrough();
component.openModal();
expect(showModalSpy).toHaveBeenCalled();
}
);

答案 0 :(得分:1)
那么,你真正想要做的就是为MainComponent
openModal
编写集成测试。所以你应该问问自己,这种方法在做什么?
撰写自动化测试的经验法则
您应始终专注于测试单元(在这种情况下为MainComponent
)正在执行的操作。在这种情况下,其他所有内容(SecondComponent
)都可以被嘲笑。
现在回答您在编写测试时会问自己的问题,openModal
方法正在调用showModal
属性上名为secondComponent
的函数你的MainComponent
。
因此,根据我们的经验法则,我们会模仿我们可以从showModal
{{1}获得的secondComponent
fixture
方法属性。
因此,您对此的集成测试应如下所示:
componentInstance

希望这有帮助!