Popularity
5.3
Declining
Activity
0.0
Stable
9
3
2
Monthly Downloads: 188
Programming language: Haskell
License: MIT License
Tags:
Testing
QuickCheck
Latest version: v0.2.0
quickcheck-io alternatives and similar packages
Based on the "quickcheck" category.
Alternatively, view quickcheck-io alternatives based on common mentions on social networks and blogs.
-
quickcheck-state-machine
Test monadic programs using state machine based models -
quickcheck-arbitrary-adt
Typeclass for generating a list of each instance of a sum type's constructors -
quickcheck-arbitrary-template
Arbitrary QuickCheck instance generation using template haskell -
quickcheck-higherorder
QuickCheck extension for higher-order properties -
quickcheck-state-machine-distributed
Test monadic programs using state machine based models -
quickcheck-property-monad
A monad for building quickcheck properties -
quickcheck-with-counterexamples
Get counterexamples out of QuickCheck as Haskell values -
quickcheck-simple
Test properties and default-mains for QuickCheck -
quickcheck-combinators
type-level combinators for quickcheck instances -
quickcheck-report
Customizable reports for quickcheck properties -
tasty-quickcheck-laws
Tasty trees for your lawful class instances
Access the most powerful time series database as a service
Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
Promo
www.influxdata.com
Do you think we are missing an alternative of quickcheck-io or a related project?
README
quickcheck-io: Use HUnit assertions as QuickCheck properties
This package provides an orphan instance that allows you to use HUnit assertions as QuickCheck properties.
Why would you want to do this?
Convenient testing of IO actions
Example: Setting an environment variable with setEnv
and then getting the
value back with getEnv
should work for arbitrary key–value pairs. Sounds
like a job for QuickCheck, huh?
import Test.QuickCheck
import Test.QuickCheck.IO ()
import Test.Hspec.Expectations (shouldReturn)
import System.SetEnv (setEnv)
import System.Environment (getEnv)
prop_setEnv k v = validKey k && validValue v ==> do
setEnv k v
getEnv k `shouldReturn` v
validKey k = (not . null) k && '\NUL' `notElem` k && '=' `notElem` k
validValue v = (not . null) v && '\NUL' `notElem` v
ghci> quickCheck prop_setEnv
+++ OK, passed 100 tests.
Better error messages for failing QuickCheck properties
You can e.g. use HUnit's @?=
ghci> import Test.QuickCheck
ghci> import Test.QuickCheck.IO
ghci> import Test.HUnit
ghci> quickCheck $ \x -> x + 23 @?= 23
*** Failed! (after 3 tests and 2 shrinks):
expected: 23
but got: 24
1
or Hspec's shouldBe
ghci> import Test.QuickCheck
ghci> import Test.QuickCheck.IO
ghci> import Test.Hspec.Expectations
ghci> quickCheck $ \x -> x + 23 `shouldBe` 23
*** Failed! (after 3 tests and 2 shrinks):
expected: 23
but got: 24
1