VerboseCheck في QuickCheck 2؟
-
22-09-2019 - |
سؤال
الوظيفة 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
لا تنتمي إلى StackOverflow