1

我有一个 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? 

不是那么荒谬,但你明白了。我希望能够测试我的基本“用户界面”,而不必每次都为每个角落案例进行检查。有没有一种工具,一种用于命令行的 Selenium,可以实现这一点?

4

3 回答 3

1

根据问题的数量,围绕非交互式输入设计您的应用程序并使用交互性作为后备可能会有所帮助。例如,您可能允许使用--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
于 2013-05-31T12:11:46.190 回答
0

期待可以做到。它不是一个 Ruby 解决方案,但很可能有一些“测试包装器”让它更容易。

于 2013-05-25T17:41:51.860 回答
0

你没有提到你的平台。在 *nix 平台中,您可以考虑使用expect命令。以下是一些示例。

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

于 2013-05-25T17:52:06.813 回答