在通过 QuickCheck 进行测试时,显示属性测试失败原因的最佳做法是什么?
考虑例如:
prop a b = res /= []
where
(res, reason) = checkCode a b
然后会话可能如下所示:
> quickCheck prop
Falsifiable, after 48 tests:
42
23
但是对于调试来说,将失败的原因显示为 quickCheck falsifable 报告的一部分会非常方便。
我已经这样破解了它:
prop a b = if res /= [] then traceShow reason False else True
where
(res, reason) = checkCode a b
有没有更好/更好或更快速的方法来做到这一点?