-- | -- Stability: stable -- -- Hspec is a testing framework for Haskell. -- -- This is the library reference for Hspec. -- The <https://hspec.github.io/ User's Manual> contains more in-depth -- documentation. module Test.Hspec ( -- * Types Spec , SpecWith , Arg , Example -- * Setting expectations , module Test.Hspec.Expectations -- * Defining a spec , it , specify , describe , context , example , parallel , sequential , runIO -- * Pending spec items -- | -- During a test run a /pending/ spec item is: -- -- 1. not executed -- -- 1. reported as \"pending\" , pending , pendingWith , xit , xspecify , xdescribe , xcontext -- * Focused spec items -- | -- During a test run, when a spec contains /focused/ spec items, all other spec -- items are ignored. , focus , fit , fspecify , fdescribe , fcontext -- * Hooks , ActionWith , before , before_ , beforeWith , beforeAll , beforeAll_ , beforeAllWith , after , after_ , afterAll , afterAll_ , around , around_ , aroundWith , aroundAll , aroundAll_ , aroundAllWith , mapSubject , ignoreSubject -- * Running a spec , hspec ) where import Test.Hspec.Core.Spec import Test.Hspec.Core.Hooks import Test.Hspec.Runner import Test.Hspec.Expectations -- | @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 example :: Expectation -> Expectation example :: Expectation -> Expectation example = forall a. a -> a id