我正在创建一个自动化测试框架。目前为了最好地发现任何问题,我已经在测试中引入了随机性,这样测试将生成随机数据并尝试多个路径。然而,这导致了一个问题,我不再能够轻松地重新执行失败的测试。
为了继续,我需要实现一种存储测试操作的方法,包括它们的参数。通过我实现框架的方式,所有“工作”都由一个类处理,因此如果我能够记录在此类中使用参数调用的方法,那么我将获得脚本中执行的操作的完整记录。 / p>
从这个方法列表中我需要一种简单的方法来重新执行这些方法调用,最好是尽可能少地进行手工操作。
很抱歉,如果之前有人询问,但我找不到任何帮助。
答案 0 :(得分:2)
虽然可以通过一些复杂的反射或面向方面的编程来记录和再现动作,但通过稍微不同地处理随机性来使这个过程可重复可能更容易。
如果没有指定种子,java.util.Random
当前版本如何确定种子,我不确定。在1.4.2中,它被记录为
public Random() { this(System.currentTimeMillis()); }
但是,如果不是基于当前时间让它默认为某种东西而不是你的控制,你明确地将种子设置为已知的东西(可能是System.currentTimeMillis()
),并记录所使用的种子,然后你可以使用相同的种子轻松重放并获得相同的“随机”数字序列。