@hackage quickcheck-assertions0.3.0
HUnit like assertions for QuickCheck
Categories
License
LGPL-3.0-only
Maintainer
s9gf4ult@gmail.com
Links
Versions
Installation
Dependencies (4)
- QuickCheck >=2.3
- base >=4 && <5
- ieee754
- pretty-show Show all…
Dependents (13)
@hackage/base58-bytestring, @hackage/cached, @hackage/acme-everything, @hackage/inline-r, @hackage/vty, @hackage/hdbi, Show all…
Module provides convenient functions to do some assertions in QuickCheck properties with pretty printed reasons. For example you can do something like that:
module Main where
import Test.Hspec
import Test.Hspec.QuickCheck
import Test.QuickCheck.Assertions
import Test.QuickCheck.Property
someProp :: Int -> Int -> Result
someProp a b = (a ?> b)
someOtherProp :: Double -> Double -> Result
someOtherProp a b = (a ?== b)
main = hspec $ describe "failing test" $ do
prop "must fail" $ someProp
prop "must fail again" $ someOtherProp
And receive pretty printed fail message when testing:
failing test
- must fail FAILED [1]
- must fail again FAILED [2]
1) failing test must fail FAILED
*** Failed! (after 1 test):
>>>>>>>>>>>>>> the value
0
>>>>>>>>>>>>>> should be greater than value
0
0
0
2) failing test must fail again FAILED
*** Failed! (after 2 tests and 4 shrinks):
>>>>>>>>>>>>>> expected
0.0
>>>>>>>>>>>>>> but got
1.0
0.0
1.0