Вопрос

Функция verboseCheck из QuickCheck 1, похоже, отсутствует в QuickCheck 2 (по крайней мере, я не могу его найти).Есть ли другой способ показать, какие значения используются во время тестирования?

Это было полезно?

Решение

Выглядит как verbose (и другие verbose- функции) были возвращены обратно в QuickCheck в версии 2.4.

Другие советы

А sample функция также полезна:

Prelude Test.QuickCheck
ghci> sample (arbitrary :: Gen String)
""
")\223"
"(\227\&5F"
"\DC1"
"\136'\140\180\FS"
"K\DC2\NUL\CAN\253Q"
"\DC4\f\184&.\DC3\159\&1I\160j\147"
....

Таким образом, вы можете легко поиграть с вашими произвольными экземплярами и убедиться, что они генерируют то, что, по вашему мнению, они генерируют.

Да, похоже, это снижение функциональности по сравнению с QuickCheck 1.

Однако вы можете обойти эту проблему, аннотируя свои свойства с помощью оператора Debug.Trace.trace.Что-то вроде:

import Debug.Trace

prop_eq xs = traceShow xs $ 
   xs == reverse (reverse xs)

я был доволен

import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)

Я посмотрел источники, и кажется, что Args были реорганизованы, configEvery его больше нет, и поэтому вы не можете распечатать все тестовые значения без исправления источников QuichCheck.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top