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)重定向到 ruby​​cas 服务器以让我登录(启动时具有 /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::Frameworks::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 回答