我正在努力在非常嚴格的測試驅動開發JUnit氛圍中培養自己。我試圖找出測試隨機性的最佳方法是在這樣一個氣氛中。例如,我正在實現一個隊列和項目的隨機隊列數組,並立即使用索引爲0-(n-1)的項目切換該項目(從而模擬一個隨機項目取出的)。下面是一些例子代碼的形式我的排隊方法:在JUnit框架中測試隨機性
int randIndex = StdRandom.uniform(size); // generate random index to swap with last item
Item tmp = randArray[randIndex];
randArray[size] = item;
randArray[randIndex] = randArray[size]; //perform swap to create a random item for dequeue
randArray[size] = tmp;
size++;
我要運行一些測試,以確保我的排隊方法實際上是隨機與數組中的其他一些指標切換排隊的變量。通常,我只是在Main()方法中拋出一些代碼,這些代碼通過一系列enqueue()調用進行迭代並打印出結果,然後檢查以確保它「隨意」。
但是,就像我說的,我想在一個非常嚴格的單元測試框架中做到這一點。看起來JUnit幾乎完全使用斷言語句,但我不確定我應該對什麼聲明什麼,除非我只是運行一些蒙特卡洛類型的東西,並檢查平均值對某個epsilon,但這似乎有點多測試這樣一個簡單的方法。
有些東西不值得花費精力去測試。這聽起來像是其中之一。 – Bill 2013-02-18 18:51:13
..或者有一些隱藏的議程;) – cybye 2013-02-18 18:51:45