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 が同じ値を 2 回使用しないようにするためです。
などの他のジェネレーターを使用したとしてもGen.alphaStr
、同じ String を 2 回テストしないようにする方法を見つけたいと思います。私がこれを行うことに興味があるのは、各テストが異なるプロセスで実行されているサーバーに対して実行されるためです。そのため、多少のコストがかかるため、同じことを 2 回テストすることは避けたいと考えています。