QuickCheck를 통해 테스트했을 때 실패한 속성 테스트의 이유를 표시하는 가장 좋은 방법은 무엇입니까? 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
이 그것을 할 수있는 더 좋은/더 좋은 이상의 quickcheckish 방법이 있습니까?
"reason"변수 (일부 문자열 또는 표시 가능한 값이라고 가정)가 실패한 경우에 표시되도록 Result를 정확하게 반환하는 방법에 대한 간단한 예제를 제공 할 수 있습니까? – maxschlepzig
업데이트 해 주셔서 감사합니다. 나는 http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html에 너무 고정되어 있으며 최신의 포괄적 인 모듈 문서 http://hackage.haskell.org/packages/를 보지 않았다. archive/QuickCheck/2.4.0.1/doc/html/Test-QuickCheck-Property.html - 'printTestCase'는 최근 추가 된 것 같습니다. quickCheck 2.1에는 포함되어 있지 않습니다. – maxschlepzig