2016-09-22 2 views
0

think-Sphinx 테스트 케이스를 쓰고 있습니다. 나는 메시지에서 같은 변화가 조명기 난 내 테스트 케이스 패스를 가지고 만들어 대신하는 경우,에 영향을 복용하지 않는 내 경우 message.update_column에서 테스트 케이스를 ThinkingSphinx의 경우 Fixture 열이 작동하지 않음

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 
을 다음했다.

update_column 다른 곳에서 update_column가 잘 작동하고 있기 때문에 스핑크스 생각에 영향을 복용하지 왜 어떤 특별한 이유가 있습니까.

+0

테스트에 트랜잭션 픽스쳐를 사용하고 있습니까? – pat

+0

네, transnational 비품을 사용하고 있습니다 –

답변

1

SQL 지원 인덱스를 사용하는 경우 (index?를 호출하는 경우) Sphinx의 인덱싱이 발생하기 때문에 Sphinx/Thinking Sphinx와 관련된 테스트에 트랜잭션 픽스쳐를 사용할 수 없습니다 데이터베이스에 별도로 연결하여 테스트 범위 내에서 작동하는 트랜잭션을 사용할 수 없습니다.

The documentation은 DatabaseCleaner를 사용하고 스핑크스와 관련된 테스트에 삭제 방법을 사용할 수있는 가능성을 다루고 있습니다. 예를 들어 RSpec 용이지만 다른 테스트 라이브러리를 사용하고있는 것처럼 보입니다. 귀하의 경우에 이것을 구현하는 방법의 세부 사항.

+0

레일을 사용하고 있습니다. 내가 찾은 해결책은 다음과 같다. make use_transactional_fixtures = false –