ruby-on-rails - 使用 RSpec 3 和 Rails 4 在 Controller 测试中查找新创建的记录

标签 ruby-on-rails ruby-on-rails-4 rspec actioncontroller rspec3

我正在 Rails 4 中制定 Controller 规范,并且想要测试由 Controller 操作创建的记录的属性。如何找到新创建的记录?

例如,我可以做什么来代替

it 'Marks a new user as pending' do
  post :create, params
  # I don't want to use the following line
  user = User.last
  expect(user).to be_pending
end

Rails guides仅简单讨论了 Controller 测试,其中提到了测试 Article.count 改变 1,但没有讨论如何获取新的 ActiveRecord 模型。

问题Find the newest record in Rails 3是关于 Rails 3 的。

我不愿意使用User.last,因为默认排序可能是按创建日期以外的其他方式排序。

最佳答案

如果 Controller 有一个名为@user的实例变量,那么我们可以在RSpec中通过assigns(:user)访问它。

关于ruby-on-rails - 使用 RSpec 3 和 Rails 4 在 Controller 测试中查找新创建的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32731143/

相关文章:

ruby-on-rails - Carrierwave 未使用 rmagick 调整版本大小

ruby-on-rails - Rails 4 ActiveRecord::关联类型不匹配

ruby-on-rails - Firefox 在下载时不显示 PDF 文件扩展名

ruby-on-rails-4 - ActiveAdmin 嵌套表单多选

ruby-on-rails - 如何从引擎中使用 FactoryGirl 工厂

ruby-on-rails - 将 i18n gem 与邮件一起使用时出现问题

ruby-on-rails - Rails 中的嵌套路由是什么?

jquery - Rails4 - 如何动态设置div 的背景图像?

ruby - rspec tests under jruby on Windows running very slow

ruby-on-rails - 为什么我在一个模型上的 rspec Rails 测试需要 10 分钟?! (Rails 3.2/rspec 2/Guard/spork)