黑子和RSpec怎么存根?
Sunspot and RSpec how to stub?
嗨,我一直在努力让它工作,我有一个使用 Sunspot 来搜索模型的控制器,我曾经有一个简单的 sql 语句,并且在我的测试中期望获取对象数组。既然我已经开始实施 Sunspot,我不确定如何进行简单的测试,我想基本上存根,每当该控制器使用搜索方法时,它应该 return 一个对象数组。
你们用过Rspec + Sunspot吗?我可以遵循的任何好的建议,也许我没有正确使用它,
PS。我已经阅读了 https://github.com/sunspot/sunspot/wiki/RSpec-and-Sunspot,它非常简短地介绍了我需要在 Sunspot::Session
处使用 ::Sunspot::Rails::StubSessionProxy.new(::Sunspot.session)
class 的行为
我能够通过更仔细地检查 sunspot 的源代码来绕过我的问题,似乎 StubSessionProxy 是一个愚蠢的实现,其中大部分代码都是空方法。首先,我意识到我不应该尝试在 class 中存根 search
方法,而是调用 new_search
方法,其次,因为两个实现 return搜索模块的实例 浴缸真的是这样
allow_any_instance_of(Sunspot::Rails::StubSessionProxy::Search).to receive(:results).and_return(myExpectedResults)
Sunspot.session = Sunspot::Rails::StubSessionProxy.new(Sunspot.session)
在大多数情况下就足够了,但如果您想要的不止 allow_any_instance_of(Sunspot::Rails::StubSessionProxy::Search).to receive(:results).and_return(myExpectedResults)
,这个 gem 可能会有所帮助 https://rubygems.org/gems/stub_solr
嗨,我一直在努力让它工作,我有一个使用 Sunspot 来搜索模型的控制器,我曾经有一个简单的 sql 语句,并且在我的测试中期望获取对象数组。既然我已经开始实施 Sunspot,我不确定如何进行简单的测试,我想基本上存根,每当该控制器使用搜索方法时,它应该 return 一个对象数组。
你们用过Rspec + Sunspot吗?我可以遵循的任何好的建议,也许我没有正确使用它,
PS。我已经阅读了 https://github.com/sunspot/sunspot/wiki/RSpec-and-Sunspot,它非常简短地介绍了我需要在 Sunspot::Session
::Sunspot::Rails::StubSessionProxy.new(::Sunspot.session)
class 的行为
我能够通过更仔细地检查 sunspot 的源代码来绕过我的问题,似乎 StubSessionProxy 是一个愚蠢的实现,其中大部分代码都是空方法。首先,我意识到我不应该尝试在 class 中存根 search
方法,而是调用 new_search
方法,其次,因为两个实现 return搜索模块的实例 浴缸真的是这样
allow_any_instance_of(Sunspot::Rails::StubSessionProxy::Search).to receive(:results).and_return(myExpectedResults)
Sunspot.session = Sunspot::Rails::StubSessionProxy.new(Sunspot.session)
在大多数情况下就足够了,但如果您想要的不止 allow_any_instance_of(Sunspot::Rails::StubSessionProxy::Search).to receive(:results).and_return(myExpectedResults)
,这个 gem 可能会有所帮助 https://rubygems.org/gems/stub_solr