2016-09-22 73 views
0

我正在写思维 - 斯芬克斯测试用例。我有以下的测试案例更新夹具栏在ThinkingSphinx的情况下不工作

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没有采取与思考狮身人面像,因为其他地方update_column工作就好影响任何具体原因。

+0

您是否在使用交易装置进行测试? – pat

+0

是的,我正在使用跨国夹具 –

回答

1

如果你使用的是SQL支持的索引(看起来你是,如果你打电话给index?),那么你不能使用交易装置进行涉及Sphinx/Thinking Sphinx的测试,因为Sphinx的索引发生了通过单独的连接到您的数据库,并且在您的测试范围内运行的事务不可用。

The documentation涵盖了使用DatabaseCleaner和使用删除方法进行涉及Sphinx的测试的可能性 - 尽管该示例适用于RSpec,并且它看起来像您正在使用不同的测试库,所以我不太确定如何在你的情况下实现这个的具体细节。

+0

我正在使用rails minitest。我找到的解决方案是:make use_transactional_fixtures = false –

相关问题