Ich habe eine Klassenmethode in einem Modell, die die Methode search () von thinking_sphinx aufruft. Ich muss diese Klassenmethode überprüfen.
Ich möchte sphinx in meinen rspec-Testfällen starten, indexieren oder stoppen. Ich versuche es mit diesem Code.
%Vor%und mit diesem Code in jedem Testfall, bevor ich die Suchanfrage auslösen
%Vor%Aber nachdem ich die Suchabfrage ausgelöst habe, gibt es mir leere Ergebnisse, obwohl exakte Übereinstimmungen in der Test-Datenbank vorhanden sind.
Bitte führen Sie mich mit Codebeispielen, wenn Sie rspec mit thinking_sphinx
verwendenDies liegt an Transaktions-Fixtures .
Während ActiveRecord alle seine Operationen innerhalb einer einzigen Transaktion ausführen kann, hat Sphinx keinen Zugriff darauf. Daher werden bei der Indexierung die Änderungen Ihrer Transaktion nicht berücksichtigt.
Sie müssen Ihre transaktionalen Fixtures deaktivieren.
Setzen Sie in Ihrer rspec_helper.rb
%Vor%um global zu deaktivieren.
Siehe Transaktionsfeatures für eine Spezifikation mit RSpec 2 deaktivieren
Tags und Links ruby-on-rails thinking-sphinx