Safe Haskell | None |
---|
Module is designed to be conveniently imported instead of Test.Hspec
It reexports Test.Hspec without expectations (except for shouldBe
)
and Test.Hspec.Expectations.Lens expectations
- type Spec = SpecM ()
- class Example a
- shouldBe :: (Show a, Eq a) => a -> a -> Expectation
- module Test.Hspec.Expectations.Lens
- 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
class Example a
A type class for examples.
Setting expectations
shouldBe :: (Show a, Eq a) => a -> a -> Expectation
actual `shouldBe` expected
sets the expectation that actual
is equal
to expected
(this is just an alias for @?=
).
module Test.Hspec.Expectations.Lens
Defining a spec
it :: Example a => String -> a -> Spec
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 -> Expectation
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 -> Expectation
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"
Running a spec
Run given spec and write a report to stdout
.
Exit with exitFailure
if at least one spec item fails.