單元測試隨機過程是否有一種理智的方法?例如說你已經爲特定的系統模型編寫了一個模擬器。模擬器根據rngs的種子隨機地工作,因此係統的狀態不能被預測,並且如果可能的話,每次測試都應該在系統試圖測試任何類別的方法之前使系統處於特定狀態。有一個更好的方法嗎?隨機過程的單元測試?
12
A
回答
3
以下是涵蓋此主題的nice blog post。基本上你需要將一個受控隨機性注入到被測對象中。
1
也許你可以使用JUnit Theories
來解決這個問題。
7
兩個明顯的選擇是去除隨機性(即,使用固定的,已知的種子用於單元測試,並從那裏繼續進行),或者以統計測試(即,運行相同的測試案件一百萬次,並驗證平均數和方差(等)符合預期)。後者可能是您的系統的更好測試,但您必須忍受一些虛假警報。
相關問題
- 1. 隨機單元測試失敗
- 2. 單元測試隨機數java
- 3. 爲單元測試隨機生成樹
- 4. python單元測試測試MongoDB隨機失敗
- 5. 單元測試測試線程安全性 - 對象不隨機提供
- 6. U-SQL過程的單元測試
- 7. 隨機測試sqlite
- 8. 通過單元測試和單元的Mockito和測試的Mockito
- 9. 單元測試的內部隨機函數。 Javascript
- 10. 我怎麼能單元測試隨機產生的用戶名
- 11. 在單元測試中運行每個斷言的隨機數
- 12. 涉及隨機數的單元測試算法
- 13. 測試通過生成隨機數
- 14. 存儲過程和單元測試
- 15. SQL單元測試存儲過程
- 16. 單元測試和存儲過程
- 17. 單元測試存儲過程
- 18. 爲有一定程度的隨機性的方法編寫單元測試
- 19. VS2008:文件創建在單元測試中隨機失敗?
- 20. 運行單元測試與多個隨機值
- 21. 在單元測試中使用隨機值有什麼缺點?
- 22. 在單元測試中使用隨機性和/或迭代?
- 23. Dart單元測試過濾
- 24. 跳過單元測試-Arcanist
- 25. 單元測試JEE過濾
- 26. CLR SQL存儲過程測試與單元測試項目
- 27. 隨機化測試Android
- 28. 隨機失敗JS測試
- 29. 隨機失敗Specflow測試
- 30. Robotium測試隨機失敗
固定種子方法的一個弱點可能是如果你改變你正在測試的算法,使得它對隨機生成器執行更多的調用(或更少的調用),那麼你還必須再次修復單元測試以滿足這個變化。 – Michelrandahl 2015-06-08 17:31:41