Quali sono le principali differenze tra QuickCheck 1 e QuickCheck 2? Dall'osservazione dei documenti di Haddock posso vedere che è diviso su più moduli, coarbitrary
è stato sostituito dal nuovo tipo Fun
e dalla classe FunArbitrary
(che mi sembra più facile da capire) e il testing del codice monadico è ora supportato. Di che altro dovrei essere a conoscenza?Novità di QuickCheck 2?
39
A
risposta
53
Ho visto un avanzamento importante nella QuickCheck 2, credo importante come test codice monadica, se non di più:
class Arbitrary a where
arbitrary :: Gen a
shrink :: a -> [a]
questo, è davvero impressionante. Il metodo di restringimento è facoltativo, ma se è possibile fornire un elenco di riduzioni "potenzialmente vuote" del proprio tipo, quando QuickCheck trova un controllo errato, cercherà di ridurre al minimo i dati difettosi cercando di ridurlo e quindi di ridurlo. -Provalo. Si riduce fino a quando non riesce.
Un po 'di esempio per convincere voi, senza ritiri:
FormulaPrim deparsing : *** Failed! Falsifiable (after 4 tests):
Poly (Polynome "p" [(CoeffRatio (26 % 25),PolyRest (CoeffRatio (129 % 40))),(CoeffInt 96,PolyRest (CoeffInt 11)),(CoeffInt 29,PolyRest (CoeffRatio (147 % 121))),(CoeffRatio (62 % 9),PolyRest (CoeffRatio (90 % 43))),(CoeffInt 56,PolyRest (CoeffInt 27))])
Con:
FormulaPrim deparsing : *** Failed! Falsifiable (after 2 tests and 3 shrinks):
Poly (Polynome "t" [(CoeffInt 14,PolyRest (CoeffInt 126))])
Shorter non riescono esempio significa più veloce di debug :-)
Problemi correlati
- 1. QuickCheck 2 elaborazione batch
- 2. verboseCheck in QuickCheck 2?
- 3. Novità. Nativo Nativo
- 4. Cos'è questa seconda novità?
- 5. Utilizzo di quickCheck
- 6. Haskell Cabal QuickCheck Integration
- 7. QuickCheck per Javascript
- 8. proprietà condizionale QuickCheck
- 9. Differenza tra ombre (VB.NET) e Novità (C#)
- 10. In Java, la novità è sempre nuova?
- 11. Haskell QuickCheck minimo contatore esempio
- 12. Quickcheck per test non booleani
- 13. Haskell - Test Parsec con l'aiuto di QuickCheck
- 14. QuickCheck: come combinare due generatori?
- 15. Utilizzare i test quickCheck con Cabal?
- 16. QuickCheck Gen non è una monade
- 17. Test delle azioni IO con Monadic QuickCheck
- 18. Come utilizzare "oneof" in quickCheck (Haskell)
- 19. Utilizzo di QuickCheck per testare condizioni di errore intenzionali
- 20. Novità in Java: che cos'è JPA e DAO?
- 21. Quali sono le ultime novità nella programmazione del touch screen?
- 22. Localizzazione dell'app iOS "Novità in questa versione" tramite iTunesConnect
- 23. Test delle proprietà di QuickCheck contro più tipi?
- 24. Come posso testare una funzione di ordine superiore usando QuickCheck?
- 25. Come si ottiene una riduzione (piccola) buona di QuickCheck?
- 26. Come posso utilizzare l'input multi-linea con QuickCheck in doctest?
- 27. Novità di TDD: ci sono esempi di applicazioni con test per mostrare come fare TDD?
- 28. Come posso evitare che QuickCheck rilevi tutte le eccezioni?
- 29. Haskell: Come testare un FSM (reattivo) con quickcheck?
- 30. Come utilizzare modificatori con QuickCheck (positivo nel mio caso)
Coolest mod Ho visto tutta la settimana . –