在ThinkingSphinx的情况下更新夹具列不起作用

时间:2016-09-22 06:28:47

标签: ruby-on-rails thinking-sphinx

我正在写思考-Sphinx测试用例。我有以下测试用例

  test 'z' do

    app = applications(:one)
    message = messages(:two)
    message.update_column(:messagable_id, app.id)
    message.update_column(:comment, 'This is second message')

    ThinkingSphinx::Test.start
    sign_in @user
    ThinkingSphinx::Test.index

    get :index, company_id: @company.id,  qc: 'Messages', q: 'Body | second', format: 'json'
    assert_response :success
    assert_equal decode_json_response(@response)['apps'].count, 2
end
  

在我的情况下,message.update_column没有生效,相反,如果我在消息夹具中进行相同的更改,那么我得到了我的测试用例   通过。

有什么特别的原因可以解释为什么update_column不会影响思考sphinx ,因为其他地方的update_column工作得很好。

1 个答案:

答案 0 :(得分:1)

如果您正在使用SQL支持的索引(如果您正在调用index,似乎就是这样?),那么您就无法使用事务性工具进行测试Sphinx / Thinking Sphinx,因为Sphinx的索引通过与您的数据库的单独连接进行,并且在您的测试范围内运行的交易是不可用的。

The documentation涵盖了使用DatabaseCleaner和使用删除方法进行涉及Sphinx的测试的可能性 - 虽然示例适用于RSpec,看起来您正在使用不同的测试库,所以我&# 39;我不太确定如何在你的情况下实现这一点。