我编写了一个随机生成器来创建扫雷板。它返回一个 Gen Board,其中 Board 是我自己定义的数据类型。我想测试它是否达到了预期的效果。由于它是一个生成器,我无法使用我习惯的返回 Bool 或 Property 的函数。有没有使用quickCheck测试生成器的好方法?
最佳答案
假设你有
genBoard :: Gen Board
isValidBoard :: Board -> Bool
您可以使用 forAll
组合器测试生成器是否有效,
prop_genBoardMakesValidBoards :: Property
prop_genBoardMakesValidBoards = forAll genBoard isValidBoard
测试生成器是否足够随机比较困难,例如它并不总是返回一个简单的板。
关于haskell - 使用 QuickCheck 测试随机生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27381125/