我在 ScalaTest 上进行基于属性的测试,我有以下代码:
val myStrings = Gen.oneOf("hi", "hello")
forAll(myStrings) { s: String =>
println(s"String tested: $s")
}
当我运行forAll
代码时,我注意到多次尝试相同的值,例如
String tested: hi
String tested: hello
String tested: hi
String tested: hello
String tested: hi
String tested: hello
...
鉴于上面的代码,我想知道是否有办法让每个值oneOf
只尝试一次。换句话说,要让 ScalaTest 不要两次使用相同的值。
即使我使用了其他生成器,例如Gen.alphaStr
,我也想找到一种方法来避免两次测试相同的字符串。我对此感兴趣的原因是因为每个测试都针对在不同进程中运行的服务器运行,因此涉及一些成本,所以我想避免两次测试相同的东西。