7

現在、キュウリとカピバラを使用した新しい Rails 3 アプリケーションの統合/受け入れテストをセットアップしようとしています。(当初はwebratを使おうと思っていたのですが、Rails 3には対応していないようで、カピバラにしました)

基本的なログインテストを機能させようとしています:

Feature: Login user
  In order to access the non-public parts of the site,
  as a user,
  I want to login to the site

Scenario: login with valid credentials
  Given I am on the login page
  When I fill in "Email" with "bender@planetexpress.com"
  And I fill in "Password" with "pass"
  And I press "Login"
  Then I should be on the users home page
  And I should see "Login successful"

問題は、ログインフォームが私を送信/user_sessionし、ユーザーのホームにリダイレクトすることです/home。Cucumber はリダイレクトに従わないため、Then I should be on the users home page回線が失敗します。

リンクをたどるボタンを押した後に正しいページに移動できるように、キュウリ/カピバラにリダイレクトに従うように指示するにはどうすればよいですか?

私が使用しているrack_testドライバーにはメソッドがあるようfollow_redirect!ですが、それはプライベートであり、その機能を呼び出す方法についての手がかりがありません。

前もって感謝します、
サイモン

4

3 に答える 3

14

Capybara は自動的にリダイレクトに従います。他の何かが壊れています。

于 2010-07-25T17:37:42.153 に答える
6

これをステップに追加します。

When /^I dump.* the response$/ do
  puts body
end

次に、テストが正しく動作しない場合は、ステップに「And I dump the response」を追加して、リダイレクトなどでどこに行くのかを確認できます。

于 2010-12-05T20:04:24.963 に答える
1

機能する可能性があるのは、ステートメントの順序を切り替えることです。

Then I should see "Login successful"
And I should be on the users home page

次に、現在のページのチェックは、ページ テキストのチェックの後に行われます。Cucumber テストには多くのデバッグが必要です。頑張ってください!

于 2010-07-23T18:54:08.350 に答える