首先 - 我知道这通常是一种可怕的做法,因为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。
答案 0 :(得分:0)
您可以访问显示当前登录用户名的页面
像:
When I go to the account page
Then I should see "Welcome user" within "div#login"