思维狮身人面像和功能测试的问题

时间:2011-05-24 12:11:53

标签: ruby-on-rails-3 functional-testing thinking-sphinx

这是我的测试(使用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索引完全为空,即使显式调用索引也是如此。

我在这里做错了吗?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

我发现了问题...即使数据库中的插入正好在ThinkingSphinx.index之前,还有setup阻止记录被删除后使用事务处理夹具。

解决方案是在测试中添加以下行:

self.use_transactional_fixtures = false

希望这可以帮助任何有同样问题的人。