ruby-on-rails - 如何 stub :where method in Rspec?

标签 ruby-on-rails ruby rspec stub

我有以下代码:

Group.where('name ~* ?', params[:name]).first

在这种情况下如何对 where 方法进行 stub ?

Group.stub(:where).and_return(mock_model(Group, name: "SomeName"))

导致错误:

Mock "Group_1001" received unexpected message :first with (no args)

最佳答案

在您的情况下,您应该首先返回响应 的内容。数组是一个不错的选择。

Group.stub(:where).and_return([mock_model(Group, name: "SomeName")])

关于ruby-on-rails - 如何 stub :where method in Rspec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15383474/

相关文章:

ruby-on-rails - JWT 在 ruby​​ on rails 上过期 token

ruby - 针对特定规范关闭 VCR

ruby-on-rails - Docker、Jenkins 和 Rails - 在典型 Rails 堆栈上运行规范的设置

ruby-on-rails - 在 Rails 中没有其他查询的情况下限制急切加载 `where`

ruby-on-rails - Rails 和有源模型串行器 : prevent double JSON encoding and escape characters (\)

ruby-on-rails - 为什么这个 RSpec 测试失败了?

ruby-on-rails - 如果有的话,rspec 相对于 test::unit 的主要优势是什么?

ruby-on-rails - Rails f.select 默认选中

ruby-on-rails - Rails - 子类化模型的设计模式是什么?

ruby-on-rails - 如何在 AWS 上生成缺失的 secret_key_base