使用 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检查它是否用数字输入与其他输入(字母、空等)做正确的事情

IE

test1 rejects a non-numeric input of "abc"
test2 returns 123 as 123
雨燕同名

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章