hspec-core-2.11.14: A Testing Framework for Haskell
Stabilityprovisional
Safe HaskellNone
LanguageHaskell2010

Test.Hspec.Core.Hooks

Contents

Description

 
Synopsis

Types

type Spec = SpecWith () Source #

A SpecWith that can be evaluated directly by the hspec function as it does not require any parameters.

type SpecWith a = SpecM a () Source #

A SpecWith a represents a test or group of tests that require an a value to run.

In the common case, a Spec is a SpecWith () which requires () and can thus be executed with hspec.

To supply an argument to SpecWith tests to turn them into Spec, use functions from Test.Hspec.Core.Hooks such as around, before, mapSubject and similar.

Values of this type are created by it, describe and similar.

type ActionWith a = a -> IO () Source #

An IO action that expects an argument of type a.

This type is what Examples are ultimately unlifted into for execution.

Hooks

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

Run a custom action before every spec item.

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

Run a custom action before every spec item.

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

Run a custom action before every spec item.

beforeAll :: HasCallStack => IO a -> SpecWith a -> Spec Source #

Run a custom action before the first spec item.

beforeAll_ :: HasCallStack => IO () -> SpecWith a -> SpecWith a Source #

Run a custom action before the first spec item.

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

Run a custom action with an argument before the first spec item.

after :: ActionWith a -> SpecWith a -> SpecWith a Source #

Run a custom action after every spec item.

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

Run a custom action after every spec item.

afterAll :: HasCallStack => ActionWith a -> SpecWith a -> SpecWith a Source #

Run a custom action after the last spec item.

afterAll_ :: HasCallStack => IO () -> SpecWith a -> SpecWith a Source #

Run a custom action after the last spec item.

around Source #

Arguments

:: (ActionWith a -> IO ())

Function provided with an action to run the spec item as argument. It should return the action to actually execute the item.

-> SpecWith a

Spec to modify

-> Spec 

Run a custom action before and/or after every spec item, supplying it with an argument obtained via IO.

This is useful for tasks like creating a file handle or similar resource before a test and destroying it after the test.

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

Run a custom action before and/or after every spec item.

aroundWith :: (ActionWith a -> ActionWith b) -> SpecWith a -> SpecWith b Source #

Run a custom action before and/or after every spec item.

aroundAll :: HasCallStack => (ActionWith a -> IO ()) -> SpecWith a -> Spec Source #

Wrap an action around the given spec.

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

Wrap an action around the given spec.

aroundAllWith :: HasCallStack => (ActionWith a -> ActionWith b) -> SpecWith a -> SpecWith b Source #

Wrap an action around the given spec. Changes the arg type inside.

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

Modify the subject under test.

Note that this resembles a contravariant functor on the first type parameter of SpecM. This is because the subject is passed inwards, as an argument to the spec item.

ignoreSubject :: SpecWith () -> SpecWith a Source #

Ignore the subject under test for a given spec.