2015/8/27

在 Spock 測試方法間共用程式碼

在進行測試程式開發時,經常會有執行或驗證的程序是在不同的測試案例間一直重覆,當然使用 Spock 時也不例外。根據 Spock 的官方文件提到,在 Spock 中可以使用 Helper Methods 來把要被共用的程式碼收納於其中,並且在不同的測試方法間呼叫。

以下為測試方法共用程式碼的範例:


而驗證的部份也可以使用相同的模式來實作,以下是根據官方文件所建立的程式碼:


在以上程式碼第 25 行的 Helper Method 中加入 assert 依據官方文件的說明是為了確保在測試結果輸出時,可以顯示是哪一行驗證結果不符合預期。而照實作的經驗,如果把 assert 移除,發生驗證失敗時不會顯示訊息,甚至顯示測試通過的結果。

這裡有個細節要注意的是 Helper Method 必須要明確的以 void 宣告無傳回值,否則 Spock 可能會依據 Helper Method 的內容解譯產生不符合預期的結果。另外有一個小差異是在 Android Studio 裡,如果使用 '&&' 的語法串起所有的驗證指令,沒有辦法像官方文件所示範的把 '&&' 放在程式碼的最開頭,必須要把 '&&' 放在程式碼的結尾後斷行,否則會顯示語法錯誤的訊息。



0 意見:

張貼留言