2017-04-10 87 views
0

在一個組件中,我有一個需要編寫測試的函數。

toggleDropdown($event: MouseEvent): void { 
    $event.preventDefault(); 
    $event.stopPropagation(); 
    this.status.isopen = !this.status.isopen; 
    } 

我怎樣才能「存根」的$event或者更準確地說MouseEvent(用於點擊情況爲例)和兩種方法preventDefault()stopPropagation()已妥善稱爲測試?

以及如何觸發此方法,包括適當的$event

我很難爲此方法定義正確的測試用例。我試圖spyOn$event,但它不能正常工作,因爲找不到名稱$event

+0

我目前無法驗證,但您可以嘗試:spyOn(MouseEvent.prototype,'preventDefault');結合手動創建的MouseEvent。我用這個自定義DI測試。 – Markai

+0

你有什麼線索如何實現手動創建一個「正確」和相關的MouseEvent? – BlackHoleGalaxy

+1

如果我正確地理解了你,你需要類似這樣的東西:http://stackoverflow.com/questions/11529158/how-to-assert-a-spy-is-invoked-with-event-on-click-using-茉莉 – Markai

回答

0

除非你正在檢查,這兩個函數已被調用,沒有必要。只需傳遞new Event('MouseEvent')作爲參數。