我要做的是在定义黄瓜步骤时使用(依靠) current_user方法。我在我的项目中使用了Clearance。
首先,我尝试使用sign_in,但它不起作用(我猜Cucumber World不知道清除方法…)。
那么如何让Cuckes识别current_user和sign_in/sign_out方法呢?
发布于 2010-12-31 12:06:00
您的Cucumber特性应该通过公共用户界面驱动应用程序。类似于:
Given /^I am signed in as "([^\"]*)"%/ do |username|
visit 'sign_in'
fill_in 'Username', :with => username
click 'Sign In'
end由于浏览器不能使用current_user方法,因此您不应该在规范中使用它。
你可以通过在上面的步骤中存储@current_user,然后为它提供一个属性阅读器来伪造它。
发布于 2013-12-06 10:32:55
我不同意每个验收测试(黄瓜或其他)都必须使用登录逻辑的观点。幸运的是,如果你同意,Clearance在测试中添加了一个back door,让你跳过登录步骤。
user = create(:user)
visit posts_path(as: user)现在,您可以像用户一样让与登录相关的特性驱动登录ui,而跳过与登录没有直接关系的特性。
https://stackoverflow.com/questions/4216057
复制相似问题