2

私はきゅうりとカピバラが初めてなので、これは簡単かもしれません。

ユーザーがログインしているかどうかを確認するためにヘッダーを使用していますが、キュウリのテストを行うときに問題が発生しています。

私はカピバラとキュウリと「ヘッダーの追加ハック」を使用しています: http://aflatter.de/2010/06/testing-headers-and-ssl-with-cucumber-and-capybara/

私が抱えている問題は、各特集記事でヘッダーを 1 回しか設定しないことです。したがって、複数のステップを経るストーリーがある場合、ヘッダーはなくなり、ユーザーはログインしなくなります。

例の話:

Given I am logged in as a superuser
And I have a database "23456789" that is not active
And I am on the home page
When I follow the "Delete" link for "23456789.sqlite"
Then I should see "Deleted the database"

このストーリーでは、「「23456789.sqlite」の「削除」リンクをたどると、ユーザーがログインしていないため、行が機能しません!

cucumber で session または before/after を使用することを考えました。

誰かがこれを修正する方法の手がかりを持っていますか?

4

1 に答える 1

0

これは、環境変数にユーザー名を渡すことで実現できます。

When /^I am logged in as a superuser$/ do
  ENV['RAILS_TEST_CURRENT_USER'] = 'admin'
end

application_controller.rb:

before_filter :stub_current_user

def stub_current_user
  if Rails.env == 'cucumber' || Rails.env == 'test'
    if username = ENV['RAILS_TEST_CURRENT_USER']
      @current_user = User.find_by_username(username)
    end
  end
end
于 2010-07-14T19:36:53.787 に答える