2012-10-24 139 views
1

我创建了一个包含物品的棋盘,并且这些物品是随机创建的,用于某种类型的比赛3游戏。有一些我想测试的情况。你能提出任何方法来测试随机产生的案例吗?测试随机产生的案例

最佳

+0

不是没有更多的信息。 – Thom

+0

我不确定我应该提供什么样的信息,但让我举一个我想要的例子。我需要制作新的项目,在棋盘上应该有可能发生的5次比赛。这是明确的还是我应该告诉你的? –

回答

0

对于含有随机(例如数字)的测试场景,你需要一个RandomGenerator,在这里你可以设置Seed。如果种子相同,生成的数字将始终相同,顺序相同。对于您将Seed设置为固定值的测试,对于真实应用程序,您将使用像System.getMilliSeconds()这样的变量值。所以你可以检查一个种子的测试结果的正确性,然后你可以随意重复你的测试,如果结果改变了,但你的种子没有找到错误案例。

+0

感谢您的回复。种子会让我产生相同的输入,但我需要特定的输入。例如,我需要制作新的项目,以便在棋盘中发生可能的5次匹配移动。它不仅仅是生成相同的输入,而是生成相同的大小写。我清楚了吗? –

+0

是的,在相同的种子中,您将始终生成相同的“随机”数字序列。所以你总是会得到相同的情况来评估。 – Simulant

+0

所以你所暗示的就我所理解的这样的事情而言。给一个种子,看看生成的项目,根据这些项目生成你的董事会,这将使你的情况下有效。更换种子或董事会为每个不同的情况。我对吗? –

2

使用TestNG,您可以使用'参数化'测试,并通过任何数据提供者对它们进行种子处理: http://www.mkyong.com/unittest/testng-tutorial-6-parameterized-test/,例如,一个简单的csv文件。

您可能希望从广泛的可能输入列表开始,然后找到一组输入,这些输入可以为您提供受测试的课程的最高覆盖率。

测试覆盖率工具可以检查在给定输入的测试期间是否达到了您的代码的每个可能的执行路径。

也许这还不够,但是对于提供特定输出的可能输入进行反向工程更多是人工智能引擎的一项任务。