Stability | stable |
---|---|
Safe Haskell | None |
Hspec is a testing library for Haskell.
This is the library reference for Hspec. The User's Manual contains more in-depth documentation.
- type Spec = SpecM ()
- class Example a
- module Test.Hspec.Expectations
- describe :: String -> Spec -> Spec
- context :: String -> Spec -> Spec
- it :: Example a => String -> a -> Spec
- example :: Expectation -> Expectation
- pending :: Expectation
- pendingWith :: String -> Expectation
- before :: IO () -> Spec -> Spec
- after :: IO () -> Spec -> Spec
- around :: (IO () -> IO ()) -> Spec -> Spec
- parallel :: Spec -> Spec
- hspec :: Spec -> IO ()
Types
A type class for examples.
Setting expectations
module Test.Hspec.Expectations
Defining a spec
it :: Example a => String -> a -> SpecSource
Create a spec item.
A spec item consists of:
- a textual description of a desired behavior
- an example for that behavior
describe "absolute" $ do it "returns a positive number when given a negative number" $ absolute (-1) == 1
example :: Expectation -> ExpectationSource
This is a type restricted version of id
. It can be used to get better
error messages on type mismatches.
Compare e.g.
it "exposes some behavior" $ example $ do putStrLn
with
it "exposes some behavior" $ do putStrLn
Specifies a pending example.
If you want to textually specify a behavior but do not have an example yet, use this:
describe "fancyFormatter" $ do it "can format text in a way that everyone likes" $ pending
pendingWith :: String -> ExpectationSource
Specifies a pending example with a reason for why it's pending.
describe "fancyFormatter" $ do it "can format text in a way that everyone likes" $ pendingWith "waiting for clarification from the designers"
around :: (IO () -> IO ()) -> Spec -> SpecSource
Run a custom action before and/or after every spec item.