La funzione verboseCheck
di QuickCheck 1 sembra essere assente in QuickCheck 2 (o almeno, non riesco a trovarlo). C'è un altro modo per mostrare quali valori vengono usati durante i test?verboseCheck in QuickCheck 2?
10
A
risposta
2
Sembra verbose
(e altre verbose
- funzioni) sono stati restituiti di nuovo a QuickCheck nella versione 2.4
1
ho preso uno sguardo a fonti, e sembra che Args
stati refactoring, configEvery
non c'è più, e quindi non sono in grado di stampare tutti i valori del test, senza l'applicazione di patch fonti QuichCheck
4
Sì, questo sembra essere una regressione di funzionalità rispetto a QuickCheck 1.
È possibile aggirare il problema annotando le proprietà con un'istruzione Debug.Trace.trace, tuttavia. Qualcosa di simile:
import Debug.Trace
prop_eq xs = traceShow xs $
xs == reverse (reverse xs)
7
La funzione sample
è anche utile:
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"
....
In questo modo, è facile giocare con le istanze arbitrarie, e assicurarsi che essi generano quello che pensi che generano.
3
Sono stato felice con
import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)
Problemi correlati
- 1. QuickCheck 2 elaborazione batch
- 2. Novità di QuickCheck 2?
- 3. Haskell Cabal QuickCheck Integration
- 4. proprietà condizionale QuickCheck
- 5. Utilizzo di quickCheck
- 6. QuickCheck per Javascript
- 7. Come utilizzare "oneof" in quickCheck (Haskell)
- 8. QuickCheck: come combinare due generatori?
- 9. Quickcheck per test non booleani
- 10. Haskell QuickCheck minimo contatore esempio
- 11. Come posso utilizzare l'input multi-linea con QuickCheck in doctest?
- 12. Utilizzare i test quickCheck con Cabal?
- 13. QuickCheck Gen non è una monade
- 14. Haskell - Test Parsec con l'aiuto di QuickCheck
- 15. Test delle azioni IO con Monadic QuickCheck
- 16. Controllo del modo in cui i dati del test vengono generati in QuickCheck
- 17. Trova il valore che non è riuscito per quickcheck
- 18. Test delle proprietà di QuickCheck contro più tipi?
- 19. Perché 2 /// 2 è 2 in Javascript?
- 20. Come utilizzare modificatori con QuickCheck (positivo nel mio caso)
- 21. Come si ottiene una riduzione (piccola) buona di QuickCheck?
- 22. Haskell: Come testare un FSM (reattivo) con quickcheck?
- 23. Come posso evitare che QuickCheck rilevi tutte le eccezioni?
- 24. Come posso testare una funzione di ordine superiore usando QuickCheck?
- 25. Utilizzo di QuickCheck per testare condizioni di errore intenzionali
- 26. IValueProvider in MVC 2 RC 2
- 27. Vincoli univoci in Doctrine 2, Symfony 2
- 28. QuickCheck stato di uscita in caso di guasti e integrazione della cabina
- 29. Come posso limitare i parametri QuickCheck, ad es. usare solo valori non negativi?
- 30. Qual è la differenza tra "2 * 2" e "2 ** 2" in Python?
Sì, è utile. –