2

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

当我使用“断言!controller.signed_in?” 在 step_definition 和当我运行“黄瓜”时,我得到了这个错误 “未定义的方法'signed_in?' 对于 nil:NilClass (NoMethodError)"

为什么它不进入控制器助手(签名_in?在会话助手中定义)?

当我尝试通过“ assert ! SessionsController.signed_in?

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

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

在我的 Sessions_helper 中:

def signed_in?
    !current_user.nil?
  end
4

1 回答 1

0

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

附带说明一下,您可能会遇到与 cookie 和会话相关的其他问题,因为 Cucumber 似乎不支持请求之间的这些问题。因此,例如,您将无法signed_in?在执行重定向/提交到登录表单后进行测试。

于 2013-03-13T10:29:45.637 回答