0

私はかなり経験豊富な開発者ですが、Web と Rails の初心者です。私は一種のマーケット プレイス レール アプリケーションを実装しようとしています。カスタマー インタラクション フローのかなり進んだところまでアプリを開発しましたが、ブラウザーを介した開発/テストが非常に多くの時間を消費する原因となるものを自動化する必要があることに気付きました。

ページ A からページ B、C、D...G に進むカスタマー インタラクション フローがあるとします。そして今、「H」ページを開発中です。自動テスト機能 (Minitest など) を使用してすべてを自動化できることはわかっています。しかし、私はまだ Rails 補助輪をつけているので、テストの自動化が実際に期待どおりに機能していると信じるよりも、データベースの状態が次の状態に進むのを自分で確認したいことがあります。

私の質問は、Minitest で A -> G からのユーザー インタラクション フローを自動化/シミュレートし、そこから手動で引き継いで、db を使用しているときに新しく開発したブラウザ ボタンをクリックできるようにする方法はありますか? db状態の進行状況を適切に監視するブラウザ?

そうでない場合 (これは私が推測していることですが)、統合テストの後にデータベースの内容を調べる方法に喜んで同意します。私の統合テストは問題なく動作します。それらが完了した後、dbブラウザを開いていろいろと調べて、db内のものが満足のいくものであることを確認するためにさまざまな値を確認できるようにしたいだけです。

私にとってうまくいくもう1つの解決策は、統合テスト内にdb値にアクセスできる何かがあった場合に、プログラムで検証できるようにすることです。assigns を使用すると、統合テスト内のインスタンス変数にアクセスして、「アサート」呼び出しを実行できるようにする方法のようなものを念頭に置いています。

もちろん、私が軌道から外れていて、私が見逃していたこの種の「ベスト プラクティス」がある場合はお知らせください。

Rails 4.2.0 と Ruby 2.2.2p95 を使用しています

4

1 に答える 1

0

Minitest には、あなたが言及した最初のオプションを実行する方法がありませんが、 (部分的に) テストを自動化する手段としてWatirをチェックアウトして、ブラウザーを開いたまま特定の時点で中断し、何が起こっているかを見ながら手動で続行することができます。 DBで。

ただし、あなたが言及した2番目のオプションはMinitestで可能です(完全に自動化されるため、さらに時間を節約できます)ので、強くお勧めします. いくつかの例については、Michael Hartl による Ruby on Rails Tutorial 3rd Edition を参照してください(すべてが役立つと思われるかもしれませんが、探しているものと非常によく似たテストを示すセクションを次に示します:セクション 7.4.4 )。

于 2015-06-12T22:50:32.867 に答える