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? 

それほどばかげているわけではありませんが、アイデアはわかります。コーナーケースごとに毎回実行する必要なく、初歩的な「UI」をテストできるようにしたいと考えています。これを実現できるコマンドライン用の Selenium のようなツールはありますか?

4

3 に答える 3

1

質問の集中砲火によっては、非インタラクティブな入力を中心にアプリを設計し、インタラクティブ性をフォールバックとして使用すると役立つ場合があります。たとえば、--client--portfolio、 などのオプションを許可する場合があります--stock-symbol。テスト/自動化スクリプトはこれらを使用します (そして非常に読みやすいという利点があります)。次に、デフォルトで、ユーザーからのインタラクティブな入力を要求できます。

ここで、上記の対話型入力をテストするために期待どおりに動作することを期待しますが、標準入力から読み取り、質問が決定論的である場合は、テキスト ファイルを作成してパイプするだけで済みます。たとえば、次のようになります。

> 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

プラットフォームについて言及していません。*nix プラットフォームでは、 expectコマンドの使用を検討できます。ここにいくつかの例を示します。

それ以外の場合は、コマンド ライン引数を受け入れるように Ruby スクリプトを変更できます。これは、より優れた複雑でない方法です。

于 2013-05-25T17:52:06.813 に答える