Tip: JavaScript is disabled in your browser. If you enable JavaScript
you'll get some non-essential but convenient user interface
enhancements.
User's Manual
Hspec is a testing framework for Haskell . Some of
Hspec's distinctive features are:
a friendly DSL for defining tests
integration with QuickCheck, SmallCheck, and HUnit
parallel test execution
automatic discovery of test files
Here is an example for the impatient:
cabal update && cabal install --package-env=. --lib hspec hspec-contrib QuickCheck HUnit
-- file Spec.hs
import Test.Hspec
import Test.QuickCheck
import Control.Exception ( evaluate )
main :: IO ()
main = hspec $ do
describe "Prelude.head" $ do
it "returns the first element of a list" $ do
head [ 23 .. ] ` shouldBe ` ( 23 :: Int )
it "returns the first element of an *arbitrary* list" $
property $ \ x xs -> head ( x : xs ) == ( x :: Int )
it "throws an exception if used with an empty list" $ do
evaluate ( head [] ) ` shouldThrow ` anyException
runhaskell Spec.hs
Prelude.head
returns the first element of a list [✔ ]
returns the first element of an *arbitrary* list [✔ ]
+++ OK, passed 100 tests.
throws an exception if used with an empty list [✔ ]
Finished in 0.0005 seconds
3 examples, 0 failures
Contents
Other resources