0
第一关 - 我知道,这通常是可怕的做法,因为黄瓜是指仅测试输出。我只想为一个非常特定的情况做这个。黄瓜访问控制器测试登录
我有一个处理使用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 /^I should be logged in as "([^"]*)"$/ do |username|
user = User.find_by_username(username)
assert_equal @controller.current_user, user
end
显然,这与“未定义的方法“CURRENT_USER失败'为零:NilClass“。
在情况不是很明显 - 的ApplicationController#CURRENT_USER返回无论是当前登录或无用户。
我已经考虑过这样做 - 应用程序的标题显示不同的东西登录的用户 - 但感觉脆,哈克给我。我宁愿测试别的地方/在除了测试,直接,用户是否登录。 – bhaibel 2010-10-08 20:45:29
为什么你认为它是哈克?如果你要在浏览器中测试你的应用程序,我的意思是模拟一个真实的用户,你将如何检查当前登录的用户?我认为这就是黄瓜的作用,模拟真正的点击。 – 2010-10-08 21:27:26
它的间接困扰我吗?这可能是我需要克服的一种个人风格的东西。它之所以感觉*脆,*不过,相对于哈克是,那么它变得更加敏感(也许过敏),以正是用户头部看起来像在任何时候 - B/C,因为它是一个用户切换*回*从SSO /用户数据库管理应用程序到主应用程序,他们看到的并不是真正的欢迎页面。 – bhaibel 2010-10-13 17:50:23