Safe Haskell | None |
---|---|
Language | Haskell2010 |
Test.Syd.Def.TestDefM
Synopsis
- type Spec = SpecWith ()
- type SpecWith inner = SpecM inner ()
- type SpecM inner result = TestDefM '[] inner result
- type TestDef outer inner = TestDefM outer inner ()
- newtype TestDefM (outers :: [Type]) inner result = TestDefM {
- unTestDefM :: RWST TestRunSettings (TestForest outers inner) () IO result
- execTestDefM :: Settings -> TestDefM outers inner result -> IO (TestForest outers inner)
- runTestDefM :: Settings -> TestDefM outers inner result -> IO (result, TestForest outers inner)
- toTestRunSettings :: Settings -> TestRunSettings
- filterTestForest :: Maybe Text -> SpecDefForest outers inner result -> SpecDefForest outers inner result
- randomiseTestForest :: MonadRandom m => SpecDefForest outers inner result -> m (SpecDefForest outers inner result)
Documentation
newtype TestDefM (outers :: [Type]) inner result Source #
The test definition monad
This type has three parameters:
outers
: A type-level list of the outer resources. These are resources that are prived once, around a group of tests. (This is the type of the results ofaroundAll
.)inner
: The inner resource. This is a resource that is set up around every test, and even every example of a property test. (This is the type of the result ofaround
.)result
: The result (TestDefM
is a monad.)
In practice, all of these three parameters should be ()
at the top level.
Constructors
TestDefM | |
Fields
|
Instances
MonadState () (TestDefM outers inner) Source # | |
MonadReader TestRunSettings (TestDefM outers inner) Source # | |
Defined in Test.Syd.Def.TestDefM Methods ask :: TestDefM outers inner TestRunSettings # local :: (TestRunSettings -> TestRunSettings) -> TestDefM outers inner a -> TestDefM outers inner a # reader :: (TestRunSettings -> a) -> TestDefM outers inner a # | |
Monad (TestDefM outers inner) Source # | |
Functor (TestDefM outers inner) Source # | |
Applicative (TestDefM outers inner) Source # | |
Defined in Test.Syd.Def.TestDefM Methods pure :: a -> TestDefM outers inner a # (<*>) :: TestDefM outers inner (a -> b) -> TestDefM outers inner a -> TestDefM outers inner b # liftA2 :: (a -> b -> c) -> TestDefM outers inner a -> TestDefM outers inner b -> TestDefM outers inner c # (*>) :: TestDefM outers inner a -> TestDefM outers inner b -> TestDefM outers inner b # (<*) :: TestDefM outers inner a -> TestDefM outers inner b -> TestDefM outers inner a # | |
MonadIO (TestDefM outers inner) Source # | |
Defined in Test.Syd.Def.TestDefM | |
MonadWriter (TestForest outers inner) (TestDefM outers inner) Source # | |
Defined in Test.Syd.Def.TestDefM Methods writer :: (a, TestForest outers inner) -> TestDefM outers inner a # tell :: TestForest outers inner -> TestDefM outers inner () # listen :: TestDefM outers inner a -> TestDefM outers inner (a, TestForest outers inner) # pass :: TestDefM outers inner (a, TestForest outers inner -> TestForest outers inner) -> TestDefM outers inner a # |
execTestDefM :: Settings -> TestDefM outers inner result -> IO (TestForest outers inner) Source #
runTestDefM :: Settings -> TestDefM outers inner result -> IO (result, TestForest outers inner) Source #
filterTestForest :: Maybe Text -> SpecDefForest outers inner result -> SpecDefForest outers inner result Source #
randomiseTestForest :: MonadRandom m => SpecDefForest outers inner result -> m (SpecDefForest outers inner result) Source #