未定义的方法'signed_in?'在使用“assert!controller.signed_in”时在黄瓜BDD中

时间:2013-02-27 11:49:23

标签: ruby-on-rails-3 cucumber bdd

我正在使用rails-3应用程序上的黄瓜BDD。

当我在step_definition中使用“assert!controller.signed_in?”时 当我跑“黄瓜” 然后我收到此错误“未定义的方法'signed_in?' for nil:NilClass(NoMethodError)“

为什么不进入controller-helper(signed_in?在sessions_helper中定义)?

当我尝试“assert ! SessionsController.signed_in?

Error : undefined method `signed_in?' for SessionsController:Class (NoMethodError)

当“assert ! SessionsHelpers.signed_in?”时 错误:未定义的方法`signed_in?' for SessionsHelper:Module(NoMethodError)

在我的Sessions_helper中:

def signed_in?
    !current_user.nil?
  end

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题,并通过将World(SessionsHelper)添加到Cucumber步骤文件的底部来解决它(可能有更好的地方放置它)。

在旁注中,您可能会遇到与Cookie和会话相关的其他问题,因为看起来Cucumber在请求之间不支持这些问题。例如,在执行重定向/提交登录表单后,您将无法测试signed_in?