Hspec имеет дело с двумя действиями ввода-вывода в Haskell

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

Просто что-то вроде приведенного ниже примера: (ниже неверно из-за типа)

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

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

person handora    schedule 30.06.2018    source источник


Ответы (1)


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

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

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

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

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