7

私が取り組んでいるプロジェクトでカピバラを使って実行するキュウリのシナリオがいくつかあります。

これらのシナリオのほとんどは、「ログインしている場合」の手順から始まります。現在、これの私の実装は次のとおりです。

  visit path_to('the login page')
  fill_in('Username', :with => 'user')
  fill_in('Password', :with => 'password')
  click_button('Login')

これは正常に機能しますが、すべてのシナリオの前にログインフォームをロードして送信する必要があるため、少し時間がかかります。

毎回フォームを確認しなくても、このステップでセッションを簡単に設定する方法はありますか?

4

3 に答える 3

2

いつものようにショーに少し遅れますが、これは Rails 3.0.10 で動作します。

features/support/authlogic.rb

require "authlogic/test_case"
World(Authlogic::TestCase)
ApplicationController.skip_before_filter :activate_authlogic
Before do
  activate_authlogic
end

次にfeatures/step_definitions/user_sessions_steps.rb

Given /^I am already logged in$/ do
  UserSession.create!(User.find_by_name!('user'))
end

明らかに、特定のユーザーにログインする場合は、ユーザー名をステップ定義に渡すことができます。

完全な詳細は、このブログ投稿にあります: http://laserlemon.com/blog/2011/05/20/make-authlogic-and-cucumber-play-nice/

于 2011-10-28T09:02:54.587 に答える
0

あなたはキュウリで背景を使うことができます..ie

Background:
    Given I am a logged-in admin user

それはあなたのシナリオを乾かします。

http://github.com/aslakhellesoy/cucumber/wiki/background

于 2010-10-27T00:49:51.043 に答える
0

別の auth gem Sorceryの wiki: Integration Testing with Rspec, Capybara and Fabricatorからトリックを借りて、彼らは以下を使用します:

page.driver.post(user_sessions_url, { username: user, password: password })

これは基本的にuser_sessions_controller#createメソッドを呼び出すため、引数が一致していることを確認してください。だから私のために、私はした:

activate_authlogic
page.driver.post(user_sessions_url, { user_session: { email: user.email, password: user.password } })

私はこれを数日間探していました。そしてUserSession.create!私のために働くことができませんでした。これは古い質問ですが、私はRails 4を使用しています。うまくいけば、他の人も行き詰まるのを助けるかもしれません。

于 2014-07-16T16:51:52.630 に答える