繁体   English   中英

如何从父级访问子级组件的元素以测试Angular 2?

[英]How do I access elements of child component from parent for testing Angular 2?

我正在尝试从父组件中获取子组件的元素,以在Karma-Jasmine中进行测试。 我有一个带有联系表单的组件(父),该组件又具有一个用户名和密码component(child),用于验证表单和显示错误消息。 现在,我需要从父组件测试子组件的警报消息。 我尝试了以下

   let parent = fixture.debugElement.query(By.css('input-component'));
   let child = parent.query(By.css('alert'));

但是我没有得到任何结果。 它只是返回父HTML。 我在这里找到了用于端到端测试的解决方案,但不适用于单元测试。

我该如何完成任务。 这是解释我的情况的傻瓜

我找到了解决问题的方法。 似乎在测试时未启用属性“脏”和“接触”。 因此,我通过添加以下代码在重置或修改表单值之后手动启用了它们...

component.parentForm.controls['childUser'].markAsDirty();
component.parentForm.controls['childUser'].markAsTouched();

我不知道这是否是使它正常工作的正确方法。 但是我找不到其他解决方案。 谢谢。 希望这对某人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM