プロパティベースのテストスタイルでコードをテストしたいと思います。
私は常に生成するジェネレーターを持っていSome(data)
ますが、データがフィルターで除外されることはありません。実行全体で同じデータセットを使用して、たとえば100個のテストを実行したいとします。今、私はこのようにやっていますが、それはあまり慣用的なコードではありません:
import org.scalacheck._
import java.util.Random
import org.scalatest._
class ExplainItOnStackOverflow extends PropSpec {
property("Just a test property to explain my problem!") {
val g = Gen.choose(1,100)
for (i <- 1 to 100) {
val Some(res) = g.apply(Gen.Params(rng = new Random(i)))
assert (res > 0)
}
}
}
クラスPropSpec
には独自のメソッドrunAll
があり、これらのプロパティチェックを実行するためにそれを使用する必要があるように思えます。