Hspec имеет дело с двумя действиями ввода-вывода в Haskell - PullRequest
0 голосов
/ 30 июня 2018

У меня вопрос, есть ли способы проверить два IO actions в HSpec от Haskell?

Просто что-то похожее на приведенный ниже пример: (ниже неправильный из-за типа)

  it "parse examples 0" $ liftM2 shouldBe (tests "ex0in.txt") (tests "ex0Out.txt")

  tests :: FileType -> IO (Either String String)

1 Ответ

0 голосов
/ 30 июня 2018

Я не знаю FileType, я имею дело, это равно FilePath.

используйте do и liftIO

it "parse examples 0" $ do
  ex0in <- liftIO (tests "ex0in.txt")
  ex0out <- liftIO (tests "ex0Out.txt")
  ex0in `shouldBe` ex0out

используйте join и liftIO

it "parse examples 0" $ join $ liftM2 shouldBe (liftIO (tests "ex0in.txt")) (liftIO (tests "ex0Out.txt"))
...