TDD MS自帶的單元測試 之 執行緒模型和執行順序

2021-09-25 03:26:17 字數 2724 閱讀 4757

我一直在呼喊「不要靠假設程式設計」,可是我卻常常這麼做。我用單元測試就是一種基於假設進行程式設計的反面教材,今天就下決心弄明白它。

主要想弄明白兩個問題:

執行的所有單元測試方法的執行緒模型,是單執行緒?是多執行緒?

執行的乙個型別的所有單元測試方法會建立乙個例項?還是乙個單元測試方法建立乙個例項?

執行的所有單元測試方法的執行順序,哪些是隨機?哪些是固定?

1 第1步,assemblyinitialize in thread:16,the unittest hashcode is:

2 第2步,單元測試類c__classinitialize in thread:16,the unittest hashcode is:

3 第3步,單元測試類c__testinitialize in thread:16,the unittest hashcode is:55310967

4 第4步,單元測試類c__單元測試方法c1 in thread:16,the unittest hashcode is:55310967

5 第5步,單元測試類c__testcleanup in thread:16,the unittest hashcode is:55310967

6 第6步,單元測試類c__testinitialize in thread:16,the unittest hashcode is:16887489

7 第7步,單元測試類c__單元測試方法c2 in thread:16,the unittest hashcode is:16887489

8 第8步,單元測試類c__testcleanup in thread:16,the unittest hashcode is:16887489

9 第9步,單元測試類b__classinitialize in thread:16,the unittest hashcode is:

10 第10步,單元測試類b__testinitialize in thread:16,the unittest hashcode is:13872596

11 第11步,單元測試類b__單元測試方法b1 in thread:16,the unittest hashcode is:13872596

12 第12步,單元測試類b__testcleanup in thread:16,the unittest hashcode is:13872596

13 第13步,單元測試類b__testinitialize in thread:16,the unittest hashcode is:17876636

14 第14步,單元測試類b__單元測試方法b2 in thread:16,the unittest hashcode is:17876636

15 第15步,單元測試類b__testcleanup in thread:16,the unittest hashcode is:17876636

16 第16步,單元測試類a__classinitialize in thread:16,the unittest hashcode is:

17 第17步,單元測試類a__testinitialize in thread:16,the unittest hashcode is:45630738

18 第18步,單元測試類a__單元測試方法a1 in thread:16,the unittest hashcode is:45630738

19 第19步,單元測試類a__testcleanup in thread:16,the unittest hashcode is:45630738

20 第20步,單元測試類a__testinitialize in thread:16,the unittest hashcode is:34828481

21 第21步,單元測試類a__單元測試方法a2 in thread:16,the unittest hashcode is:34828481

22 第22步,單元測試類a__testcleanup in thread:16,the unittest hashcode is:34828481

23 第23步,單元測試類c__classcleanup in thread:16,the unittest hashcode is:

24 第24步,單元測試類b__classcleanup in thread:16,the unittest hashcode is:

25 第25步,單元測試類a__classcleanup in thread:16,the unittest hashcode is:

26 第26步,assemblycleanup in thread:16,the unittest hashcode is:

單執行緒執行。

每個單元測試方法都會建立乙個例項。

[assemblyinitialize]最先執行。

[assemblycleanup]最後執行。

[testinitialize]在每個單元測試方法執行之前都會執行。

[testcleanup]在每個單元測試方法執行之後都會執行。

[classinitialize]在例項該單元測試類的第乙個例項時執行。

[classcleanup]在[assemblycleanup]之前執行,執行順序與[classinitialize]相反。

還有兩個問題沒有得出結論:一、單元測試型別的執行順序;二、單元測試方法的執行順序。好在單元測試最好不要依賴這個順序,因此我就不做實驗了。

Tornado 自帶Testing單元測試模組

asynctestcase 可以看做是對 ioloop 的乙個封裝,並以 testcase 的形式提供使用介面。class testfunc1 asynctestcase 這步如果不寫,會報錯傳入引數沒有ioloop,會導致無法進入runtest裡面 def get new ioloop self ...

單元測試之Django單元測試

每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...

單元測試(三) 建立多執行緒單元測試

junit本是不支援多執行緒的,乙個單元測試case主程序跑完,其他new出來的執行緒都會gg思密達。此篇mark乙份在junit中執行多執行緒的方法。net.sourceforge.groboutils groboutils core 5test slf4j public class device...