-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Testing Framework for Haskell -- -- Hspec is a testing framework for Haskell. It is inspired by the Ruby -- library RSpec. Some of Hspec's distinctive features are: -- --
-- ArithException (divide by zero) --formatException :: SomeException -> String class IsFormatter a toFormatter :: IsFormatter a => a -> IO Formatter instance IsFormatter Formatter instance IsFormatter (IO Formatter) module Test.Hspec.Runner -- | Run given spec and write a report to stdout. Exit with -- exitFailure if at least one spec item fails. hspec :: Spec -> IO () -- | Run given spec and returns a summary of the test run. -- -- Note: hspecResult does not exit with exitFailure -- on failing spec items. If you need this, you have to check the -- Summary yourself and act accordingly. hspecResult :: Spec -> IO Summary -- | Run given spec with custom options and returns a summary of the test -- run. -- -- Note: hspecWith does not exit with exitFailure on -- failing spec items. If you need this, you have to check the -- Summary yourself and act accordingly. hspecWith :: Config -> Spec -> IO Summary -- | Summary of a test run. data Summary Summary :: Int -> Int -> Summary summaryExamples :: Summary -> Int summaryFailures :: Summary -> Int data Config Config :: Bool -> Bool -> Bool -> Maybe (Path -> Bool) -> Maybe Integer -> Maybe Int -> Maybe Int -> Maybe Int -> Int -> ColorMode -> Formatter -> Bool -> Either Handle FilePath -> Config configDryRun :: Config -> Bool configPrintCpuTime :: Config -> Bool configFastFail :: Config -> Bool -- | A predicate that is used to filter the spec before it is run. Only -- examples that satisfy the predicate are run. configFilterPredicate :: Config -> Maybe (Path -> Bool) configQuickCheckSeed :: Config -> Maybe Integer configQuickCheckMaxSuccess :: Config -> Maybe Int configQuickCheckMaxDiscardRatio :: Config -> Maybe Int configQuickCheckMaxSize :: Config -> Maybe Int configSmallCheckDepth :: Config -> Int configColorMode :: Config -> ColorMode configFormatter :: Config -> Formatter configHtmlOutput :: Config -> Bool configHandle :: Config -> Either Handle FilePath data ColorMode ColorAuto :: ColorMode ColorNever :: ColorMode ColorAlways :: ColorMode -- | A tuple that represents the location of an example within a spec. -- -- It consists of a list of group descriptions and a requirement -- description. type Path = ([String], String) defaultConfig :: Config -- | Add a filter predicate to config. If there is already a filter -- predicate, then combine them with ||. configAddFilter :: (Path -> Bool) -> Config -> Config -- | This function is used by hspec-discover. It is not part of -- the public API and may change at any time. hspecWithFormatter :: IsFormatter a => a -> Spec -> IO () instance Eq Summary instance Show Summary instance Monoid Summary -- | This module provides access to Hspec's internals. It is less stable -- than other parts of the API. For most users Test.Hspec is more -- suitable! module Test.Hspec.Core -- | A type class for examples. class Example a evaluateExample :: Example a => a -> Params -> (IO () -> IO ()) -> ProgressCallback -> IO Result data Params Params :: Args -> Int -> Params paramsQuickCheckArgs :: Params -> Args paramsSmallCheckDepth :: Params -> Int type Progress = (Int, Int) type ProgressCallback = Progress -> IO () -- | The result of running an example. data Result Success :: Result Pending :: (Maybe String) -> Result Fail :: String -> Result -- | A writer monad for SpecTree forests. data SpecM a -- | Convert a Spec to a forest of SpecTrees. runSpecM :: Spec -> IO [SpecTree] -- | Create a Spec from a forest of SpecTrees. fromSpecList :: [SpecTree] -> Spec -- | Internal representation of a spec. data SpecTree SpecGroup :: String -> [SpecTree] -> SpecTree BuildSpecs :: (IO [SpecTree]) -> SpecTree SpecItem :: String -> Item -> SpecTree data Item Item :: Bool -> (Params -> (IO () -> IO ()) -> ProgressCallback -> IO Result) -> Item itemIsParallelizable :: Item -> Bool itemExample :: Item -> Params -> (IO () -> IO ()) -> ProgressCallback -> IO Result mapSpecItem :: (Item -> Item) -> Spec -> Spec modifyParams :: (Params -> Params) -> Spec -> Spec -- | The describe function combines a list of specs into a larger -- spec. describe :: String -> [SpecTree] -> SpecTree -- | Create a spec item. it :: Example a => String -> a -> SpecTree -- | Hspec is a testing framework for Haskell. -- -- This is the library reference for Hspec. The User's Manual -- contains more in-depth documentation. module Test.Hspec type Spec = SpecM () -- | A type class for examples. class Example a -- | Combine a list of specs into a larger spec. describe :: String -> Spec -> Spec -- | An alias for describe. context :: String -> Spec -> Spec -- | Create a spec item. -- -- A spec item consists of: -- --
-- describe "absolute" $ do -- it "returns a positive number when given a negative number" $ -- absolute (-1) == 1 --it :: Example a => String -> a -> Spec -- | An alias for it. specify :: Example a => String -> a -> Spec -- | 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 --example :: Expectation -> Expectation -- | 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 --pending :: 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" --pendingWith :: String -> Expectation -- | Run a custom action before every spec item. before :: IO () -> Spec -> Spec -- | Run a custom action before all spec items. beforeAll :: IO () -> Spec -> Spec -- | Run a custom action after every spec item. after :: IO () -> Spec -> Spec -- | Run a custom action before and/or after every spec item. around :: (IO () -> IO ()) -> Spec -> Spec -- | Run examples of given spec in parallel. parallel :: Spec -> Spec -- | Run an IO action while constructing the spec tree. -- -- SpecM is a monad to construct a spec tree, without executing -- any spec items. runIO allows you to run IO actions during this -- construction phase. The IO action is always run when the spec tree is -- constructed (e.g. even when --dry-run is specified). runIO :: IO a -> SpecM a -- | Run given spec and write a report to stdout. Exit with -- exitFailure if at least one spec item fails. hspec :: Spec -> IO () module Test.Hspec.QuickCheck -- | Use a modified maxSuccess for given spec. modifyMaxSuccess :: (Int -> Int) -> Spec -> Spec -- | Use a modified maxDiscardRatio for given spec. modifyMaxDiscardRatio :: (Int -> Int) -> Spec -> Spec -- | Use a modified maxSize for given spec. modifyMaxSize :: (Int -> Int) -> Spec -> Spec -- |
-- prop ".." $ -- .. ---- -- is a shortcut for -- --
-- it ".." $ property $ -- .. --prop :: Testable prop => String -> prop -> Spec