我写了一个随机发电机来制造一个扫雷板。它返回Gen Board,其中Board是我自己定义的数据类型。我想测试它做了它应该做的事情。由于它是一个生成器,我不能使用我习惯的函数来返回Bool或Property。有没有一种使用quickCheck测试生成器的好方法?
答案 0 :(得分:4)
假设你有
genBoard :: Gen Board
isValidBoard :: Board -> Bool
您可以使用forAll
组合器
prop_genBoardMakesValidBoards :: Property
prop_genBoardMakesValidBoards = forAll genBoard isValidBoard
更难以测试发电机是否足够随机,例如它并不总是返回一个普通的电路板。