ruby-on-rails - 如何使用 RSpec 登录用户

标签 ruby-on-rails ruby rspec

我正在尝试在过滤器之前编写一个 RSpec 来让用户登录。我有一个产品 Controller 。为了查看产品,用户必须登录。我在 spec/support/utilities 中添加了一个登录方法,如下所示:

def login(user)
  post login_path, email: user.email, password: "password"
end

然后我在我的 spec/controllers/products 测试中调用了 before filter 中的方法:

before :each do
  user = FactoryGirl.create(:user)
  login(user)
end

当我运行测试时,出现以下错误:

The action '/login' could not be found for ProductsController

我有一个/login 的路由,我的用户身份验证很简单——就像Railscasts #250 Authentication from Scratch .我错过了什么?

最佳答案

如果这是 Controller 规范,那么问题是在对 Controller 进行单元测试时路由不可用。重点是隔离测试,也就是没有路由

关于ruby-on-rails - 如何使用 RSpec 登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660098/

相关文章:

ruby-on-rails - 使用 Pow 作为服务器在 RubyMine 中调试 - Ruby 2.1.1 + Rails 4

html - 如何在 link_to 中包含 title 和 class 属性?

ruby-on-rails - delayed_job 处理作业后的回调

ruby - _(下划线)变量在哪里以及如何指定?

ruby-on-rails - Travis 因 webpacker 问题 (Rspec) rails 5.2 而失败

ruby-on-rails - 使用 Rails 自定义外键

ruby-on-rails - 使用 Rails 和 ActiveMerchant 重复计费 : Best practices, 陷阱,陷阱?

arrays - 如何在我的数组中找到与正则表达式匹配的连续字符串?

ruby-on-rails - Rails RSpec 测试 : Undefined method 'deliver' for nil:NilClass

ruby-on-rails - cucumber 和 rails : testing for the presence of a random record