测试命令行程序

时间:2013-11-19 12:15:22

标签: bash testing

所以,我有这个命令行程序二进制文件(让我们说它名为./prog)我想测试。我想使用shunit2作为我的测试框架。不幸的是,它要求用户输入。我该怎么测试呢?例如:

  1. start ./prog
  2. prog问:用户名:
  3. 检查/断言字符串是期望的字符串(字符串应该可以被shunit2访问)
  4. 现在我需要指定一个输入,比如约翰
  5. prog打印出一些回应,说它与约翰相反。
  6. 检查/断言John是预期的输出(字符串应该可以再次访问shunit2)
  7. 如何在shunit2中断言/验证/检查这一点,即给定的输入John会产生正确的输出字符串John?

    我知道存在'expect'或'expect-lite'等工具。但是,我如何仅使用shell测试它呢?

    或者,我如何整合expect或expect-lite,以便我可以使用shunit2验证输入?

1 个答案:

答案 0 :(得分:0)

您可能只需要将输入传递给prog的stdin。有很多方法可以做到这一点:

{ echo "Username"; echo "John"; } | ./prog