2017-08-01 161 views
0

我正在爲Jasmine編寫Angular2的單元測試。如何編寫茉莉花測試

這裏是我的代碼片段:

component.ts 

toggleSelect() { 
    this.checked = event.target.checked 
    this.tree.forEach(t => { 
    t.checked = this.checked 
    }) 
    } 

回答

3

錯誤消息 「預期真實是假的。」意味着茉莉花期望變量的值是錯誤的,但實際值是真實的。

從上面的代碼段,下面的代碼塊

component.tree.forEach(t => { 
    expect(t.checked).toBe(false); 
}); 

在檢查標誌預期是假的做的斷言此錯誤時纔有可能,但這是真的。

從提供的代碼中,我認爲這是下面一行代碼(在測試中)的結果。

component.toggleSelect(event); 

傳遞的事件的檢查值爲true。當使用事件對象調用toggleSelect時,樹數組中每個條目的選中值都設置爲true。由此,代碼塊

component.tree.forEach(t => { 
    expect(t.checked).toBe(true); 
}); 

所代表的第一個斷言成功。

但是下面這個說法,你是不是叫

component.toggleSelect(event); 

與事件對象,其選中的值是假的。

這會導致樹的以前的狀態被保留。

要解決你的測試,所有你需要做的是失敗的

event.target.checked = false; // Set the checked value to false 
component.toggleSelect(event); // Call toggle select with the updated event 
斷言之前調用下面的一段代碼