这是我的测试(使用shoulda帮助者):
context "searching from header" do
setup do
Factory(:city, :name => 'Testing It')
ThinkingSphinx::Test.index 'city_core', 'city_delta'
ThinkingSphinx::Test.start
get :index,
:query => 'Testing It'
end
should respond_with(:success)
should assign_to(:results)
should "have one city on the result" do
assert_equal( assigns(:results).count, 1 )
assert_kind_of( assigns(:results).first, City )
end
ThinkingSphinx::Test.stop
end
一切正常,但测试总是说结果的计数是0,而不是1。
我已调试此代码,当请求到达控制器时,Sphinx索引完全为空,即使显式调用索引也是如此。
我在这里做错了吗?
任何帮助表示感谢。
答案 0 :(得分:1)
我发现了问题...即使数据库中的插入正好在ThinkingSphinx.index
之前,还有setup
阻止记录被删除后使用事务处理夹具。
解决方案是在测试中添加以下行:
self.use_transactional_fixtures = false
希望这可以帮助任何有同样问题的人。