0
유사한 줄에 다른 질문이 있지만이 특정 시나리오에서 내 질문에 대한 답변이 없습니다. 게다가 Haskell에서 단위 테스트 IO 작업의 주제를 간략하게 설명하는 리소스가 거의없는 것 같습니다.Hspec을 사용한 IO 작업 단위 테스트
의 내가 내 데이터베이스 통신이 typeclass 있다고 가정 해 봅시다 :
data Something = Something String deriving Show
class MonadIO m => MonadDB m where
getSomething :: String -> m Something
getSomething s = do
... -- assume a DB call is made and an otherwise valid function
instance MonadDB IO
과 사용이 기능 :
getIt :: MonadDB m => m (Int, Something)
getIt = do
[email protected](Something str) <- getSomething "hi"
return (length str, s) -- excuse the contrived example
내가 hspec에 있지만 이야기하지 않고 getIt
기능을 테스트 할 아마도 데이터베이스를 교체하는 것이므로 MonadDB
을 사용하지만 그 작업을 어떻게 수행합니까?
감사합니다. 귀하의 테스트는 HSpec 사양에서 어떻게 실행됩니까? –
내 대답이 업데이트되었습니다. –
'MonadDB'가 다른 패키지 인 경우 컴파일러가 'IdentityTm' 인스턴스를 선택할 수있는 능력에 어떤 영향을 줍니까? –