-1

私が書くとき:

When I fill in "To" with "example1@example.com, example2@example.com"
And I press "Send testimonials request"
Then I should see "Testimonial requests have been successfully sent"
And "example1@example.com" should receive an email with subject "Add a testimonial..."
And "example2@example.com" should receive an email with subject "Add a testimonial..."

すべて正常に動作します。

しかし、私が書くと:

When I fill in "To" with "example1@example.com, example2@example.com"
And I press "Send testimonials request"
Then "example1@example.com" should receive an email with subject "Add a testimonial..."
And "example2@example.com" should receive an email with subject "Add a testimonial..."
And I should see "Testimonial requests have been successfully sent"

何も機能しません... 1行だけが最後に移動され、... ブーム..

その理由は、メールをチェックする前の遅延でしょうか? またはそのようなもの。

4

2 に答える 2

2

これはキュウリの非同期動作です。最初のケースでは、フラッシュ メッセージを待ってアクションが完了するまで待機しています。内部的にキュウリ ドライバーは、この要素を間隔とガード遅延 (カピバラ待機時間) でポーリングすることにより、要素が表示されるまで "待機" します。

2 番目のケースでは、すぐにメールをチェックしています。Cucumber はコントローラー/アクションについて何も認識しておらず、それらと同期していません。

最初のケースを残すか、メール チェックのステップで何らかのポーリングを導入することができます。

于 2012-03-14T10:27:50.820 に答える
1

使用しているブラウザドライバによっては、これはタイミングの問題になる可能性があります。これは、CapybaraとSeleniumを使用してよく見られます。ステップ「Ishouldsee...」は実際にテストを停止し、そのメッセージがページに表示されるのを待ちます(これは電子メールの送信が行われるときです)。これを最後に移動すると、「メールを受信する必要がある」ステップが速すぎて、アプリが実際にメールを送信する前にアサーションが作成される可能性があります。

于 2012-03-14T03:44:48.763 に答える