Test Organization - The Rust Programming Language You’ll put unit tests in the src directory in each file with the code that they’re testing. The convention is to create a module named tests in each file to contain the test functions and to annotate the module with cfg(test).
yipo🌿
我知道把 function 或 class 排好會整齊 但是如果一個 function 有 5 個或 10 個 test case,整個檔案就會有大部分都不是真正執行的程式碼,不會對讀 code 造成阻礙嗎? python 的 unittest 會找檔名是 test 開頭或 test 結尾的 所以檔名 https://abc.py 的 test case 就可以寫在 https://abc_test.py,然後就會被擺在一起,也方便找 不過這樣會導致資料夾檔案混亂 (真正執行的程式碼跟 test 又混在一起了) 所以我們會使用 tests/ 資料夾裡面才放 https://abc_test.py 等所有跟外面路徑結構相的test 檔案
寫在同個檔案跟原本的 source code 混在一起會變得很亂不是?
Test Organization - The Rust Programming Language
它好像是可以寫在一起但並沒有推薦寫在同一個檔案吧
首先我不會把測試當成說明或文件 那是函式前面的註解做的事情
另外測試太多很亂要我整理解決....嗯
除了放在別的檔案其他整理方法我還真想不出來
個人喜好是單一檔案的行數越少越好Orz
要用分頁對照看也比較好拉
我只用過 unittest 而已
那這情況我大概兩者都用吧....理由跟這篇差不多
You’ll put unit tests in the src directory in each file with the code that they’re testing. The convention is to create a module named
tests
in each file to contain the test functions and to annotate the module withcfg(test)
.怎麼跟我認知的不一樣XD
我是把沒有任何外部依賴的測試都當作單元測試
感覺有點對不上
沒學過Rust看來不能直接拿其他語言套Orz
官方文件是天 既然有明文寫那我一定跟著走 沒餘地戰那rust的單元測試要不要測public方法
還是會傾向丟到整合測試
假設我寫了一個像STL的library 裡面只提供了一堆稀有資料結構讓人用
那針對 DisjointSet 的增查 測試是單元測試應該沒啥毛病
外部人士用這個library 也只能是 new 特定的結構來用
那這個 library 不就沒寫 Integration Tests 的必要了
但是如果一個 function 有 5 個或 10 個 test case,整個檔案就會有大部分都不是真正執行的程式碼,不會對讀 code 造成阻礙嗎?
python 的 unittest 會找檔名是 test 開頭或 test 結尾的
所以檔名 https://abc.py 的 test case 就可以寫在 https://abc_test.py,然後就會被擺在一起,也方便找
不過這樣會導致資料夾檔案混亂 (真正執行的程式碼跟 test 又混在一起了)
所以我們會使用 tests/ 資料夾裡面才放 https://abc_test.py 等所有跟外面路徑結構相的test 檔案
- test case 可以統一放在檔案的下半部,應該還不算太影響閱讀。
- 擺在實作旁邊我覺得也可以接受,還算好找。
- 放在 tests 目錄,如果 IDE 有方便的方式可以打開對應的檔案也還算 OK。
但前提就是有賴良好習慣,確實把檔案整理成一對一,或相同目錄結構,才方便去查找對應的測試。