java - 记录包含参数的方法调用,以便在程序执行后可以执行它们

标签 java

我正在创建一个自动化测试框架。目前,为了最好地发现任何问题,我在测试中引入了随机性,这样测试将生成随机数据并尝试多个路径。然而这导致了一个问题,我不再能够轻松地重新执行失败的测试。

为了继续,我需要实现一种方法来存储测试操作,包括它们的参数。通过我实现框架的方式,所有“工作”都由一个类处理,因此,如果我能够记录在此类中使用参数调用的方法,那么我将拥有脚本中执行的操作的完整记录。

从这个方法列表中,我需要一种简单的方法来重新执行这些方法调用,最好是尽可能少的手动工作。

很抱歉,如果之前有人问过这个问题,但我找不到任何帮助。

最佳答案

虽然可以通过一些复杂的反射或面向方面的编程来记录和重现操作,但通过稍微不同地处理随机性来使该过程可重复可能更容易。

java.util.Random当前版本具体如何如果未指定,则确定种子,我不确定。在 1.4.2 中,它被记录为

 public Random() { this(System.currentTimeMillis()); }

但是,如果您不让它默认为基于当前时间且超出您控制的值,而是明确将种子设置为已知的值(可能是 System.currentTimeMillis() ),并记录所使用的种子,那么您可以轻松重播使用相同的种子并获得相同的“随机”数字序列。

关于java - 记录包含参数的方法调用,以便在程序执行后可以执行它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7425585/

相关文章:

java - 在Java中总是至少有一个线程;这在 C++ 中是真的吗?

java - : "Deploying JugaadFunda to Google". com.google.appengine.tools.admin.AppAdminFactory.setJarSplittingEnabled(Z)V 期间发生内部错误

java - 使用 JavaScript 从网页打印远程文件

java - 用于在 Java 中构建 SOAP Web 服务客户端的推荐库

java - spring batch 配置元素不可达

java - JScrollPane 和自动滚动 : Disturbing scrolling behavior

java - 如何将 Jmeter 响应数据转换为字节?如何将字节值存储到CSV文件中?

java - 如何断言已将适当的值分配给私有(private)字段?

java - Android:保存的缩略图不应出现在图库中

java - 如何使用JGit查找提交距离?