2017-09-04 55 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(); 

我不知道這是使它工作正確的方法。但我找不到任何其他解決方案。謝謝。希望這可以幫助某人。

相關問題