Ruby 在CLI程序中自动执行命令

Ruby 在CLI程序中自动执行命令,ruby,testing,Ruby,Testing,我有一个Ruby应用程序,它在命令行上执行用户输入的多个步骤,即: Please select a client number: 1 Thank you for selecting 1. Please select a portfolio number: 3. You are in portfolio 3. Please select a stock option: AAPL. You have chosen AAPL. What would you like to do with it? b

我有一个Ruby应用程序,它在命令行上执行用户输入的多个步骤,即:

Please select a client number: 1
Thank you for selecting 1. Please select a portfolio number: 3.
You are in portfolio 3. Please select a stock option: AAPL.
You have chosen AAPL. What would you like to do with it? b
How many shares would you like to buy? 5
You have purchased 5 shares of Apple stock. What would you like to do next? 

没那么可笑,但你明白了。我希望能够测试我的基本“UI”,而不必每次都检查每个角落的情况。是否有一种工具,类似于命令行的Selenium,可以实现这一点

我能做到。它不是一个Ruby解决方案,但可能会有一些“测试包装器”让它更简单。

可以做到这一点。它不是一个Ruby解决方案,但可能会有一些“测试包装器”让它更简单。

您没有提到您的平台。在*NIX平台中,可以考虑使用命令。下面是一些例子


否则,您可以修改Ruby脚本以接受命令行参数。这是一种更好、更简单的方法。

您没有提到您的平台。在*NIX平台中,可以考虑使用命令。下面是一些例子


否则,您可以修改Ruby脚本以接受命令行参数。这是一种更好、更简单的方法。

根据大量问题的不同,它可能有助于围绕非交互式输入设计应用程序,并将交互作为备用方案。例如,您可能允许诸如
--client
--portfolio
--stock symbol
之类的选项。您的测试/自动化脚本将使用这些(并且具有可读性强的优点)。默认情况下,您可以要求用户进行交互式输入

现在,为了测试所说的交互式输入,expect可以工作,但是如果您正在阅读标准输入,并且问题是确定的,那么您可以制作一个文本文件并将其导入。例如:

> cat input.txt
1
3
AAPL
b
5
> ./my_app < input.txt
> ./my_app --client 1 --portfolio 3 --stock-symbol AAPL --buy 5
>cat input.txt
1.
3.
AAPL
B
5.
>./my_app/my_应用程序--客户1--投资组合3--股票符号AAPL--购买5

根据大量问题的不同,围绕非交互式输入设计应用程序可能会有所帮助,并将交互式作为备用方案。例如,您可能允许诸如
--client
--portfolio
--stock symbol
之类的选项。您的测试/自动化脚本将使用这些(并且具有可读性强的优点)。默认情况下,您可以要求用户进行交互式输入

现在,为了测试所说的交互式输入,expect可以工作,但是如果您正在阅读标准输入,并且问题是确定的,那么您可以制作一个文本文件并将其导入。例如:

> cat input.txt
1
3
AAPL
b
5
> ./my_app < input.txt
> ./my_app --client 1 --portfolio 3 --stock-symbol AAPL --buy 5
>cat input.txt
1.
3.
AAPL
B
5.
>./my_app/my_应用程序--客户1--投资组合3--股票符号AAPL--购买5