2017-09-04 54 views
0

我试图从父组件中获取子组件的元素以在Karma-Jasmine中进行测试。 我有一个组件(父母)的联系表格,它又有一个用户名和密码组件(子),用于验证表单和显示错误消息。现在我需要测试父组件的子组件的警报消息。我试过以下如何从家长访问用于测试Angular 2的子组件的元素?

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

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

我该如何完成任务。这里是Plunker用于解释我的场景。

+0

'alert message'意思是'alert()'函数调用吗? – smnbbrv

+0

@smnbbrv编号标记 – SanjuAus

+0

您应该至少发布整个代码的规范和组件文件,理想的情况是plunkr – smnbbrv

回答

0

我找到了我的问题的解决方案。似乎在测试时,“脏”和“触摸”属性未启用。所以我手动启用其复位或通过添加以下代码修改表单值后...

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

我不知道这是使它工作正确的方法。但我找不到任何其他解决方案。谢谢。希望这可以帮助某人。

相关问题