HUnit-1.6.0.0: A unit testing framework for Haskell

Safe Haskell | Safe
Language | Haskell2010

Test.HUnit.Lang

Contents

- Internals

Synopsis

- type Assertion = IO ()
- assertFailure :: HasCallStack => String -> IO a
- assertEqual :: (HasCallStack, Eq a, Show a) => String -> a -> a -> Assertion
- data Result
  - = Success
  - | Failure (Maybe SrcLoc) String
  - | Error (Maybe SrcLoc) String
- performTestCase :: Assertion -> IO Result
- data HUnitFailure = HUnitFailure (Maybe SrcLoc) FailureReason
- data FailureReason
  - = Reason String
  - | ExpectedButGot (Maybe String) String String
- formatFailureReason :: FailureReason -> String

# Documentation

type Assertion = IO () #

When an assertion is evaluated, it will output a message if and only if the assertion fails.

Test cases are composed of a sequence of one or more assertions.

assertFailure #

Arguments

:: HasCallStack |
=> String | A message that is displayed with the assertion failure
-> IO a |

Unconditionally signals that a failure has occured. All other assertions can be expressed with the form:

       if conditionIsMet
           then IO ()
           else assertFailure msg

assertEqual #

Arguments

:: (HasCallStack, Eq a, Show a) |
=> String | The message prefix
-> a | The expected value
-> a | The actual value
-> Assertion |

Asserts that the specified actual value is equal to the expected value. The output message will contain the prefix, the expected value, and the actual value.

If the prefix is the empty string (i.e., `""`), then the prefix is omitted and only the expected and actual values are output.

data Result #

Constructors

Success |
Failure (Maybe SrcLoc) String |
Error (Maybe SrcLoc) String |

Instances

Eq Result # |
Instance details Defined in Test.HUnit.Lang Methods (==) :: Result -> Result -> Bool # (/=) :: Result -> Result -> Bool #
Show Result # |
Instance details Defined in Test.HUnit.Lang Methods showsPrec :: Int -> Result -> ShowS # show :: Result -> String # showList :: [Result] -> ShowS #

performTestCase #

Arguments

:: Assertion | an assertion to be made during the test case run
-> IO Result |

Performs a single test case.

# Internals

Note: This is not part of the public API! It is exposed so that you can tinker with the internals of HUnit, but do not expect it to be stable!

data HUnitFailure #

Constructors

HUnitFailure (Maybe SrcLoc) FailureReason |

Instances

Eq HUnitFailure # |
Instance details Defined in Test.HUnit.Lang Methods (==) :: HUnitFailure -> HUnitFailure -> Bool # (/=) :: HUnitFailure -> HUnitFailure -> Bool #
Show HUnitFailure # |
Instance details Defined in Test.HUnit.Lang Methods showsPrec :: Int -> HUnitFailure -> ShowS # show :: HUnitFailure -> String # showList :: [HUnitFailure] -> ShowS #
Exception HUnitFailure # |
Instance details Defined in Test.HUnit.Lang Methods toException :: HUnitFailure -> SomeException # fromException :: SomeException -> Maybe HUnitFailure # displayException :: HUnitFailure -> String #

data FailureReason #

Constructors

Reason String |
ExpectedButGot (Maybe String) String String |

Instances

Eq FailureReason # |
Instance details Defined in Test.HUnit.Lang Methods (==) :: FailureReason -> FailureReason -> Bool # (/=) :: FailureReason -> FailureReason -> Bool #
Show FailureReason # |
Instance details Defined in Test.HUnit.Lang Methods showsPrec :: Int -> FailureReason -> ShowS # show :: FailureReason -> String # showList :: [FailureReason] -> ShowS #

formatFailureReason :: FailureReason -> String #