我应该使用哪个库/方法来在Java / Scala中为给定的类进行深度随机对象生成? 深度生成是指递归地填充整个对象图,包括原始类型和复杂类型的随机值。
目标是在测试中使用随机生成的模拟对象。
为了使测试一致和可重现,在每次运行时生成的对象集应相同。
我应该使用哪个库/方法来在Java / Scala中为给定的类进行深度随机对象生成? 深度生成是指递归地填充整个对象图,包括原始类型和复杂类型的随机值。
目标是在测试中使用随机生成的模拟对象。
为了使测试一致和可重现,在每次运行时生成的对象集应相同。
两种方法都在程序的广泛测试中被成功地使用(类似于Haskell的QuickCheck)。不幸的是,虽然有一些不同的实现方法,但我认为Java没有一个可以直接使用的库。例如,您可能想要检查Yann Ponty's page,其中包含这些方法在生物信息学中的Java实现。如果您正在使用OCaml,则Alexis Darrasse和Benjamin Canou已经实现了 Boltzmann抽样的一个有用子集,作为代数类型(sumtypes)的完全自主库。