Copyright | (c) Sven Heyll 2016 |
---|---|
License | BSD-3 |
Maintainer | sven.heyll@gmail.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
A tiny EDSL to write type-level-unit tests.
A simple example:
specHelloWorld :: Expect (Int `Isn't` Bool) specHelloWorld = Valid
We can also expect a bit more using lists and tuples:
specGrouped :: Expect '[ Int `Isn't` Bool , Int `Is` Int , Bool `Is` Bool `ButNot` String ] specGrouped = Valid
The expectations are executed by the compiler when solving the constraints of
TypeSpec
s constructors.
A TypeSpec
also has a Show
instance, which can be used in real unit tests
to print the expectations.
This module contains mainly re-exports of.
Synopsis
- type Expect = TypeSpec
- type Explain does this = TypeSpec (It does this)
- type Is = ShouldBe
- type IsTheSameAs = ShouldBe
- type TheseAreEqual = ShouldBe
- type IsNot = ShouldNotBe
- type Isn't = ShouldNotBe
- type IsNotTheSameAs = ShouldNotBe
- type IsDifferentFrom = ShouldNotBe
- type TheseAreNotEqual = ShouldNotBe
- type IsTrue = ShouldBeTrue
- type And = ShouldBeTrue
- type Therefore = ShouldBeTrue
- type That = ShouldBeTrue
- type IsFalse = ShouldBeFalse
- type Not = ShouldBeTrue
- type They message expectations = It message expectations
- type Describe = It
- type Context = It
- type It's = It
- module Test.TypeSpec.Core
- module Test.TypeSpec.Group
- module Test.TypeSpec.Label
- module Test.TypeSpec.ShouldBe
TypeSpec
Aliases
ShouldBe
aliases
type IsTheSameAs = ShouldBe Source #
type TheseAreEqual = ShouldBe Source #
ShouldNotBe
aliases
type IsNot = ShouldNotBe Source #
type Isn't = ShouldNotBe Source #
type IsNotTheSameAs = ShouldNotBe Source #
type IsDifferentFrom = ShouldNotBe Source #
type TheseAreNotEqual = ShouldNotBe Source #
ShouldBeTrue
aliases
type IsTrue = ShouldBeTrue Source #
type And = ShouldBeTrue Source #
type Therefore = ShouldBeTrue Source #
type That = ShouldBeTrue Source #
ShouldBeFalse
aliases
type IsFalse = ShouldBeFalse Source #
type Not = ShouldBeTrue Source #
Labelling Aliases
Reexports
module Test.TypeSpec.Core
module Test.TypeSpec.Group
module Test.TypeSpec.Label
module Test.TypeSpec.ShouldBe