2017-09-26 46 views
0

如果我有一個要求,即函數的輸出必須始終在一定範圍內,那麼如果函數返回不可預知的結果,我該如何測試?如何編寫單元測試以確保輸出在一定範圍內?

例如,假設我有一個函數可以生成隨機數字或密碼;我如何測試數字始終在1000和9999之間,或者密碼始終在6-12個字符之間?我們使用數字發生器的例子 - 目前我會寫兩個測試:一個在有限循環中運行函數,測試每個結果> = 1000,第二個確保輸出爲< = 9999.顯然,循環必須針對每個測試運行大量的次數(> 9K)纔有機會覆蓋所有可能的輸出值。

是否有更好的方法(將被視爲更加可靠即的)測試的不可預測函數的輸出時

回答

0

通常要測試所有可能的輸入,並確保輸出是你期望。

如果您正在測試具有隨機方面的函數,那麼這很難做到,因爲它對於相同的輸入將具有不同的輸出。如果可能,我會發現究竟在哪裏使用隨機值,然後測試可能來自隨機值生成器的每個可能值,但是如果您正在測試隨機值生成器本身,那麼您描述的方法似乎是是最好的選擇。

相關問題