reset_session 在 Cucumber 测试中不起作用

发布于 2024-10-12 00:49:42 字数 376 浏览 2 评论 0原文

对于 Cucumber 场景,我有以下步骤:

Given /^I am not logged in$/ do
  request.reset_session
  controller.instance_variable_set(:@_current_user, nil)
end

但是当我运行 Cucumber 功能时,我得到:

undefined method `reset_session' for nil:NilClass (NoMethodError)

我的设置:

  • rails 3.0.3
  • cucumber-rails 0.3.2

I have the following step for a Cucumber scenario:

Given /^I am not logged in$/ do
  request.reset_session
  controller.instance_variable_set(:@_current_user, nil)
end

But when I run my Cucumber features, I get:

undefined method `reset_session' for nil:NilClass (NoMethodError)

My setup:

  • rails 3.0.3
  • cucumber-rails 0.3.2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事还在继续 2024-10-19 00:49:43

Cucumber 旨在锻炼全栈能力。鉴于此,您通常不想像使用 rspec 那样在较低级别上搞乱内部结构。

尝试这样的操作:

Given /^I am not logged in$/ do
  visit logout_path
end

此示例使用 Capybara 的 visit 方法,因此您需要进行相应调整,但这应该会给您正确的想法。

Cucumber is intended to exercise the full stack. Given that, you generally don't want to muck around with the internals at a lower level as you might with rspec.

Try something like this:

Given /^I am not logged in$/ do
  visit logout_path
end

This example uses Capybara's visit method, so you'll need to adjust accordingly, but this should give you the right idea.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文