2016-09-23 52 views
-2

這裏是我的方法新的測試,我將如何測試這種方法與摩卡,柴,酶和Sinon?

handleKeyEvent(event) { 
    const code = event.keyCode; 

    if (UsedKeys.includes(code)) { 
     event.preventDefault(); 

     if (code === KeyCodes.DOWN) { 
     this.modifyIndexBy(1); 
     } else if (code === KeyCodes.UP) { 
     this.modifyIndexBy(-1); 
     } 
    } 
    } 

我還是很新的測試,我不知道我怎麼會去測試這一塊。 該方法需要一個事件,所以我必須合成一個事件對象並傳入它?

之後,我只是以某種方式測試this.modifyIndexBy()被調用?

此方法不返回任何內容。我是否修改我的代碼以使其更具可測試性?

回答

0

有幾種方法可以做到這一點。

  • 您可以創建對象,然後窺視modifyRowIndexBy檢查時handleKeyDown調用與給定參數的叫法。
  • 你可以從你的「指數修正」,使他們能夠進行獨立測試(這是不好的做法,窺探同一個對象,你正在測試)
  • 是什麼modifyIndexBy實際上分開的按鍵處理?你可以測試結果是相同的(所以它實際上並不測試modifyIndexBy被調用,但是應該做的是完成)。這是一個更爲BDD的方法。
+0

讓我們[在聊天中繼續討論](http://chat.stackoverflow.com/rooms/124048/discussion-between-james-monger-and-brandon-sturgeon)。 –