我有一个函数arbExample来生成一个随机Example数据类型,它取决于许多函数.
我试图通过做一些属性测试quickCheck prop_example,问题是我不知道如何定义一个Arbitrary实例Example使用arbExample.
我喜欢quickCheck prop_example在指定使用的Gens数据结构时运行arbExample.
data Example = Example
{ myInt :: Int
, myList :: [String]
} deriving (Show)
data Gens = Gens
{ gen1 :: Gen Int
, gen2 :: Gen String }
arbExample :: Gens -> Gen Example
arbExample gens = do
i <- gen1 gens
xs <- vectorOf i (gen2 gens)
return Example{myInt=i, myList=xs}
prop_example :: Example -> …Run Code Online (Sandbox Code Playgroud)