hspec-2.11.12: A Testing Framework for Haskell
Stabilitystable
Safe HaskellNone
LanguageHaskell2010

Test.Hspec

Description

Hspec is a testing framework for Haskell.

This is the library reference for Hspec. The User's Manual contains more in-depth documentation.

Synopsis

Types

type Spec = SpecWith () #

type SpecWith a = SpecM a () #

type family Arg e #

Instances

Instances details
type Arg Property 
Instance details

Defined in Test.Hspec.Core.QuickCheck

type Arg Property = ()
type Arg Result 
Instance details

Defined in Test.Hspec.Core.Example

type Arg Result = ()
type Arg Expectation 
Instance details

Defined in Test.Hspec.Core.Example

type Arg Expectation = ()
type Arg Bool 
Instance details

Defined in Test.Hspec.Core.Example

type Arg Bool = ()
type Arg (a -> Property) 
Instance details

Defined in Test.Hspec.Core.QuickCheck

type Arg (a -> Property) = a
type Arg (a -> Result) 
Instance details

Defined in Test.Hspec.Core.Example

type Arg (a -> Result) = a
type Arg (a -> Expectation) 
Instance details

Defined in Test.Hspec.Core.Example

type Arg (a -> Expectation) = a
type Arg (a -> Bool) 
Instance details

Defined in Test.Hspec.Core.Example

type Arg (a -> Bool) = a

class Example e #

Minimal complete definition

evaluateExample

Instances

Instances details
Example Result 
Instance details

Defined in Test.Hspec.Core.Example

Associated Types

type Arg Result 
Instance details

Defined in Test.Hspec.Core.Example

type Arg Result = ()

Methods

evaluateExample :: Result -> Params -> (ActionWith (Arg Result) -> IO ()) -> ProgressCallback -> IO Result

Example Expectation 
Instance details

Defined in Test.Hspec.Core.Example

Associated Types

type Arg Expectation 
Instance details

Defined in Test.Hspec.Core.Example

type Arg Expectation = ()

Methods

evaluateExample :: Expectation -> Params -> (ActionWith (Arg Expectation) -> IO ()) -> ProgressCallback -> IO Result

Example Bool 
Instance details

Defined in Test.Hspec.Core.Example

Associated Types

type Arg Bool 
Instance details

Defined in Test.Hspec.Core.Example

type Arg Bool = ()

Methods

evaluateExample :: Bool -> Params -> (ActionWith (Arg Bool) -> IO ()) -> ProgressCallback -> IO Result

Example (a -> Result) 
Instance details

Defined in Test.Hspec.Core.Example

Associated Types

type Arg (a -> Result) 
Instance details

Defined in Test.Hspec.Core.Example

type Arg (a -> Result) = a

Methods

evaluateExample :: (a -> Result) -> Params -> (ActionWith (Arg (a -> Result)) -> IO ()) -> ProgressCallback -> IO Result

Example (a -> Expectation) 
Instance details

Defined in Test.Hspec.Core.Example

Associated Types

type Arg (a -> Expectation) 
Instance details

Defined in Test.Hspec.Core.Example

type Arg (a -> Expectation) = a

Methods

evaluateExample :: (a -> Expectation) -> Params -> (ActionWith (Arg (a -> Expectation)) -> IO ()) -> ProgressCallback -> IO Result

Example (a -> Bool) 
Instance details

Defined in Test.Hspec.Core.Example

Associated Types

type Arg (a -> Bool) 
Instance details

Defined in Test.Hspec.Core.Example

type Arg (a -> Bool) = a

Methods

evaluateExample :: (a -> Bool) -> Params -> (ActionWith (Arg (a -> Bool)) -> IO ()) -> ProgressCallback -> IO Result

Setting expectations

type Selector a = a -> Bool #

type HasCallStack = ?callStack :: CallStack #

type Expectation = Assertion #

shouldBe :: (HasCallStack, Show a, Eq a) => a -> a -> Expectation #

shouldContain :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation #

shouldEndWith :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation #

shouldMatchList :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation #

shouldNotBe :: (HasCallStack, Show a, Eq a) => a -> a -> Expectation #

shouldNotContain :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation #

shouldReturn :: (HasCallStack, Show a, Eq a) => IO a -> a -> Expectation #

shouldSatisfy :: (HasCallStack, Show a) => a -> (a -> Bool) -> Expectation #

shouldStartWith :: (HasCallStack, Show a, Eq a) => [a] -> [a] -> Expectation #

shouldThrow :: (HasCallStack, Exception e) => IO a -> Selector e -> Expectation #

anyArithException :: Selector ArithException #

anyErrorCall :: Selector ErrorCall #

anyException :: Selector SomeException #

anyIOException :: Selector IOException #

errorCall :: String -> Selector ErrorCall #

Defining a spec

it :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a) #

example :: Expectation -> Expectation Source #

example 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

runIO :: IO r -> SpecM a r #

Pending spec items

During a test run a pending spec item is:

  1. not executed
  2. reported as "pending"

xit :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a) #

Focused spec items

During a test run, when a spec contains focused spec items, all other spec items are ignored.

fit :: (HasCallStack, Example a) => String -> a -> SpecWith (Arg a) #

Hooks

type ActionWith a = a -> IO () #

before :: IO a -> SpecWith a -> Spec #

before_ :: IO () -> SpecWith a -> SpecWith a #

beforeWith :: (b -> IO a) -> SpecWith a -> SpecWith b #

beforeAllWith :: HasCallStack => (b -> IO a) -> SpecWith a -> SpecWith b #

after_ :: IO () -> SpecWith a -> SpecWith a #

around :: (ActionWith a -> IO ()) -> SpecWith a -> Spec #

around_ :: (IO () -> IO ()) -> SpecWith a -> SpecWith a #

aroundAll_ :: HasCallStack => (IO () -> IO ()) -> SpecWith a -> SpecWith a #

mapSubject :: (b -> a) -> SpecWith a -> SpecWith b #

Running a spec

hspec :: Spec -> IO () #