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