我正在尝试从父组件中获取子组件的元素,以便在Karma-Jasmine中进行测试。 我有一个组件(父)与联系表单,其中有一个用户名和密码组件(子),用于验证表单和显示错误消息。现在我需要从父组件测试子组件的警报消息。我试过跟着
let parent = fixture.debugElement.query(By.css('input-component'));
let child = parent.query(By.css('alert'));
但我没有得到任何结果。它只返回父HTML。我找到了E2E测试的解决方案here,但它不适用于单元测试。
我该如何完成任务。这是用于解释我的场景的Plunker。
答案 0 :(得分:0)
我找到了解决问题的方法。似乎在测试时不会启用属性“脏”和“触摸”。因此,我通过添加以下代码重置或修改表单值后手动启用它们...
component.parentForm.controls['childUser'].markAsDirty();
component.parentForm.controls['childUser'].markAsTouched();
我不知道这是否是让它发挥作用的正确方法。但我找不到任何其他解决方案。谢谢。希望这有助于某人。