使用Hspec测试用户输入

时间:2017-07-29 03:03:31

标签: haskell testing hspec

我有一个程序从getLine获取用户输入,然后验证它是所有数字。如果它通过它运行String -> String的函数并将结果打印到屏幕。如果不是,则重复getLine

module Main where

import Control.Monad.Loops (untilJust)
import Data.Char           (isDigit)

main = do
  let validateInput s = if all isDigit s then Just s else Nothing
  putStrLn =<< myFunc <$> untilJust (validateInput <$> (putStr "Number : " >> getLine))

myFunc = id -- to do

如何用Hspec之类的东西测试这个主函数来检查它是否正确输入数字输入与其他输入(字母,空等)

test1 rejects a non-numeric input of "abc"
test2 returns 123 as 123

1 个答案:

答案 0 :(得分:2)

由于您要测试逻辑而不是用户交互,我建议您只是考虑输入验证。