在完成軟體構造課程的lab1時,其中有一部分時需要讓我們為乙個類friendshipgraph編寫測試,這個類大概有以下三個功能(方法):
將一些頂點加入有向圖
講對應的邊加入有向圖
計算有向圖兩點之間的距離
那麼明顯這個測試類的對應的測試1,2,3的方法是有先後順序的。當時我覺得junit的測試應該本身是按順序執行的,但是執行後發現了錯誤如圖:
這裡我們明顯看到加點的方法對了,但是加邊的方法卻有錯誤,提示資訊提醒加入邊對應的點還未被加入點集中。因此加邊的方法執行在了加點的方法前。
經過查詢junit在發現預設情況下,將使用確定性但有意不明顯的演算法對測試方法進行排序。 這確保了測試套件的後續執行以相同的順序執行測試方法,從而允許可重複的構建。
意思是junit的方法執行順序預設是不確定的,但是一旦執行就不會改變。
但是官方為我們提供了修改執行順序的方法,可以使用在類前面加
@fixmethodorder(methodsorters.name_ascending)//讓test按照字典序執行
public class friendshipgraphtest
@org.junit.test
public void b_addedge() throws friendshipgraph.samenameexception {}
@org.junit.test
public void c_getdistance() throws friendshipgraph.samenameexception {}
}
之後執行得到的結果就符合了我們的預期。
同時還有以下幾種方法可以選用
@fixmethodorder(methodsorters.jvm)
從上到下 執行@test
@fixmethodorder(methodsorters.name_ascending)
按方法名字順序執行@test
@fixmethodorder(methodsorters.default)
預設方法,不可預期
Junit 測試執行順序
junit 單元測試中設定測試執行順序 junit中 的測試中,有些資料有依賴性,比如 註冊使用者後,才能執行編輯 操作之類的,所以需要測試用例 按照一定順序執行。乙個簡單的例項,見如下 引入了 testsuite,import junit.framework.test import junit.f...
TestNG測試執行順序
1.preserve order屬性,之前一直認為preserve order屬性是控制配置方法的執行順序的,其實不是,preserve order主要是控制test下節點classes執行順序的 例如 1.0 encoding utf 8 framework testng test preserv...
測試執行分層
測試執行分層 v模型體現了測試設計分層和測試執行分層的概念,本文以作者自身的理解談談測試執行分層,不過從實際專案運作情況來看,真正做到測試執行分層的並不多,這裡原因有很多種,暫且不論。1.ut 單元測試的物件是lld中所劃分定義的程式單元或模組,它也是單元測試用例設計中可測試的最大單元。該測試物件可...