3

Web サイトの統合テストの一環として、キュウリとカピバラを使用しています。カピバラはクッキーの使用をエミュレートできないようです。

たとえば、ユーザーがサインインするときに Cookie を設定します。

    def sign_in(user)
      cookies.permanent.signed[:remember_token] = [user.id, user.salt]
      current_user = user
    end

ただし、後で cookies.inspect を使用して Cookie の値をフェッチすると、{} が返されます。これはカピバラの既知の制限ですか? この場合、複数のリクエストでサインインしているユーザーをテストするにはどうすればよいですか?

テストを追加する必要があります:

Scenario: User is signed in when they press Sign In
 Given I have an existing account with email "bob@jones.com" and password "123456"
 And I am on the signin page
 When I fill in "Email" with "bob@jones.com"
 And I fill in "Password" with "123456"
 And I press "Sign In"
 Then I should see "Welcome Bob Jones"
4

5 に答える 5

2

これは、機能の実行中に Cookie の内容を表示する良い方法です。

https://gist.github.com/484787

于 2010-12-15T14:39:47.183 に答える
1

この投稿の時点では、その要点は機能しませんでしたが、これは機能し、やや単純です。

http://collectiveidea.com/blog/archives/2012/01/05/capybara-cucumber-and-how-the-cookie-crumbles/

于 2012-02-07T23:14:36.397 に答える
1

セレンでテストを実行してみませんか?実際のブラウザで実行したいシナリオの前に @selenium タグを追加するだけです。:)

于 2011-11-15T20:21:33.153 に答える
0

Capybara には、Cookie の読み取りと設定のための API がありません。

ただし、Capyabara でのログインを非常に簡単にシミュレートできます。ログイン リンクにアクセスするだけです。これにより、すべての Cookie の設定を含め、ログインが行われます。

これが実際に行われていることを確認するには、サンプルの Rails appを見てください。

于 2011-11-29T20:52:15.313 に答える