我为一个使用 Pipes 的项目编写了一个程序,我喜欢它!但是,我正在努力对我的代码进行单元测试。
我有一系列类型的函数Pipe In Out IO ()
(例如),我希望用 HSpec 进行测试。我该怎么办?
例如,假设我有这个域:
data Person = Person String Int | Unknown deriving (Show, Eq)
data Classification = Friend | Foe | Undecided deriving Show
和这个管道:
classify :: Pipe Person (Person, Classification) IO ()
classify = do
p@(Person name _) <- await
case name of
"Alex" -> yield (p, Friend)
"Bob" -> yield (p, Foe)
_ -> yield (p, Undecided)
我想写一个规范:
main = hspec $ do
describe "readFileP" $
it "yields all the lines of a file"
pendingWith "How can I test this Pipe? :("