propertyForStringsFromMyCharPool :: String -> Bool
-- implementation
main = T.quickCheck propertyForStringsFromMyCharPool
现在 QuickCheck 生成各种字符串,但我只想测试我的属性以获取字符池中的字符串。
我现在的输出是:
*** Failed! Falsifiable (after 3 tests and 2 shrinks):
"-"
但这不是真正的失败,因为 -
不包含在我的字符集中,并且一开始就不应该生成包含它的字符串。
我尝试阅读 the docs of QuickCheck但它们非常抽象和艰巨,我没有找到一个解决方案。
我看到了a solution on StackOverflow但是看起来很简单的问题似乎有太多代码,我担心它是过度设计的。
最佳答案
我觉得你可以用
elements :: [a] -> Gen a
结合
listOf :: Gen a -> Gen [a]
所以你的 String
生成器看起来像这样
vowels :: Gen String
vowels = listOf (elements "aeiou")
关于haskell - Quickcheck:生成一个由给定池中的字符组成的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35689180/