自分のタイプのインスタンスを生成するランダムジェネレーターをテストしています。そのために、私は次のカスタムインスタンスを持っていますArbitrary
:
complexGenerator :: (RandomGen g) => g -> (MyType, g)
instance Arbitrary MyType where
arbitrary = liftM (fst . complexGenerator . mkStdGen) arbitrary
これは、生成された値が特定のプロパティを保持していることをテストするためTest.QuickCheck
に(実際には)とうまく機能します。Test.Framework
ただし、確認したいプロパティはかなりあります。追加するほど、すべてのプロパティを確認するのに時間がかかります。
毎回新しく生成するのではなく、すべてのプロパティをテストするために同じ生成値を使用する方法はありますか?私は明らかに、失敗時にどのプロパティが保持されなかったかを確認したいので、1つの巨大なプロパティを作成することand
は最適ではありません。