| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Test.MockCat.MockT
Synopsis
- newtype MockT (m :: Type -> Type) a = MockT {}
- data Definition = (KnownSymbol sym, Typeable f, Typeable params, params ~ ResolvableParamsOf f, Typeable (InvocationRecorder params)) => Definition {
- symbol :: Proxy sym
- mockFunction :: f
- verification :: Verification f
- data Verification f
- = NoVerification
- | Verification (f -> IO ())
- runMockT :: MonadIO m => MockT m a -> m a
- class Monad m => MonadMockDefs (m :: Type -> Type) where
- addDefinition :: Definition -> m ()
- getDefinitions :: m [Definition]
Documentation
newtype MockT (m :: Type -> Type) a Source #
Instances
| MonadTrans MockT Source # | |
Defined in Test.MockCat.MockT | |
| MonadIO m => MonadIO (MockT m) Source # | |
Defined in Test.MockCat.MockT | |
| Applicative m => Applicative (MockT m) Source # | |
| Functor m => Functor (MockT m) Source # | |
| Monad m => Monad (MockT m) Source # | |
| MonadIO m => MonadMockDefs (MockT m) Source # | |
Defined in Test.MockCat.MockT Methods addDefinition :: Definition -> MockT m () Source # getDefinitions :: MockT m [Definition] Source # | |
| Monad m => MonadWithMockContext (MockT m) Source # | |
Defined in Test.MockCat.MockT Methods | |
| MonadUnliftIO m => MonadUnliftIO (MockT m) Source # | |
Defined in Test.MockCat.MockT | |
data Definition Source #
Constructors
| (KnownSymbol sym, Typeable f, Typeable params, params ~ ResolvableParamsOf f, Typeable (InvocationRecorder params)) => Definition | |
Fields
| |
data Verification f Source #
Constructors
| NoVerification | |
| Verification (f -> IO ()) |
runMockT :: MonadIO m => MockT m a -> m a Source #
Run MockT monad. After run, verification is performed to see if the stub function has been called.
import Test.Hspec
import Test.MockCat
...
class (Monad m) => FileOperation m where
writeFile :: FilePath -> Text -> m ()
readFile :: FilePath -> m Text
operationProgram ::
FileOperation m =>
FilePath ->
FilePath ->
m ()
operationProgram inputPath outputPath = do
content <- readFile inputPath
writeFile outputPath content
makeMock [t|FileOperation|]
spec :: Spec
spec = do
it "test runMockT" do
result <- runMockT do
_readFile $ "input.txt" ~> pack "content"
_writeFile $ "output.text" ~> pack "content" ~> ()
operationProgram "input.txt" "output.text"
result shouldBe ()
class Monad m => MonadMockDefs (m :: Type -> Type) where Source #
Instances
| MonadIO m => MonadMockDefs (MockT m) Source # | |
Defined in Test.MockCat.MockT Methods addDefinition :: Definition -> MockT m () Source # getDefinitions :: MockT m [Definition] Source # | |