2013-08-01 69 views
1

如果我有酥料餅的說,我想測試一下:如何確保茉莉花單元測試中的DRY代碼?

  1. 創建
  2. 被操縱
  3. 被破壞

這是有益的它在一個地方聲明(隱藏在「描述」中),以便它可以在「它」之間共享。

應該在測試之間分享一些東西嗎? I.E test2依賴test1首先運行? 用Jasmine做這件事的最好方法是什麼?

回答

1

依靠測試訂單是一件壞事。要在測試之間分享內容,您可以設置對象的狀態。假設下面的僞代碼:

var popover = getPopover({state:'init'}); 
//checking init state 
... 
//other test starting 
var popover = getPopover({state:'manipulated'}); 
//checking the state 

所以主要想法是能夠以你需要的狀態初始化你的對象。 請注意,如果執行初始化的代碼並不多,而且您不需要重複使用它,則可以對每個測試的狀態設置進行硬編碼。當然,這不是乾燥的,但是你可以從可以閱讀的測試中受益,而無需參考其他方法。有時候這是一件好事,但這取決於。

此外,您可以使用beforeEachafterEach在每次測試之前和之後進行設置和拆卸(這是一個描述級別的事情)。這是執行狀態初始化和清理的首選方法之一。