Mat*_*hid 7 haskell quickcheck
我有一个QuickCheck属性,如下所示:
prop42 :: Foo -> Bool
prop42 foo = fn1 foo == fn2 foo
Run Code Online (Sandbox Code Playgroud)
如果此属性失败,它将打印出来的内容foo.但我真的很想知道什么fn1并且fn2回来了.如果foo很大,手动生成这些信息有点不重要.(即,坐在那里,手动输入打印到Windows控制台窗口的巨大文本块.)
测试框架有一个比较相等的东西,并且如果相等不成立则打印出两个值是很常见的.但我似乎无法为QuickCheck找到这样的功能......
Yuu*_*uri 10
看看这里的组合器.例如,printTestCase允许将任意字符串添加到失败案例的输出中.一个简单的例子:
prop x = let f = sin x
in printTestCase ("Should be at least " ++ show f) $ x >= sin x
Run Code Online (Sandbox Code Playgroud)
$> quickCheck prop *** Failed! Falsifiable (after 2 tests and 1 shrink): -1.0 Should be at least -0.8414709848078965