0

私はカピバラをプロジェクトに統合しています。最初は、ログインページが何を表示しているかを確認したかったので、次のコードを作成しました。

require 'acceptance/acceptance_helper'
feature 'Login' do
  scenario 'sign in with right credentials' do
    visit '/'
    save_and_open_page
  end
end

しかし、テストを実行すると、次のように表示されます。

 Failure/Error: visit '/'
 ActionController::RoutingError:
   No route matches "/login"
 # ./spec/acceptance/login_spec.rb:6

有効なセッションなしでアプリケーションに入ると、(コード302)がrubycasサーバーにリダイレクトされてログインし(開始時に/ loginコンテキストがあります)、その後、サーバーに再度リダイレクトされます。ログインページを表示するにはどうすればよいですか、またはカピバラでリダイレクト参照を維持するにはどうすればよいですか?

4

2 に答える 2

1

私は通常これを行います:

私のtest.rbの内部:

    require 'casclient'
  require 'casclient/frameworks/rails/filter'

  CASClient::Frameworks::Rails::Filter.configure(
      :cas_base_url => cas_base_url
  )

次のように仕様を変更します。

CASClient::Frameworks::Rails::Filter.fake(username)
  visit '/'

これがあなたのために働くかどうか私に知らせてください。

================================================== ================================

「CASClient::Framework :: Rails :: Filter.fake(username)」を使用しないと、私も同じエラーが発生します。その理由は、casが「/login?service=http%3A%2d%2Fwww.example.com%aF」のようなパラメータを使用してベースURLにリダイレクトするためです。したがって、それは行方不明のルートについて不平を言います。

  • テストログを確認する
于 2011-12-20T06:41:53.780 に答える
0

適切な一致ルートが追加されていることを確認してください。ルートが欠落しているようです。

これがお役に立てば幸いです。

ルートを書くためにあなたはhttp://railscasts.com/episodes/79-generate-named-routesから助けを得ることができます

于 2011-12-19T08:49:38.153 に答える