我正在努力在非常严格的测试驱动开发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