访问Cucumber中的控制器以测试登录

时间:2010-10-07 20:08:50

标签: ruby-on-rails cucumber

首先 - 我知道这通常是一种可怕的做法,因为Cucumber只是为了测试输出。我只想为一个非常具体的案例做这件事。

我有一个应用程序,使用我维护的另一个应用程序设置的cookie处理用户身份验证。我想为身份验证编写一个非常简单的集成测试:

Given I have logged as "some_user" on the SSO server
When I visit any page
Then I should be logged in as "some_user"

我当前对Then的步骤定义如下:

Then /^I should be logged in as "([^"]*)"$/ do |username|
  user = User.find_by_username(username)
  assert_equal @controller.current_user, user
end

显然,对于nil:NilClass,“未定义的方法'current_user'失败了。

如果不明显 - ApplicationController#current_user返回当前登录的用户或nil。

1 个答案:

答案 0 :(得分:0)

您可以访问显示当前登录用户名的页面 像:
When I go to the account page
Then I should see "Welcome user" within "div#login"