So testen Sie ThinkingSphinx mit RSpec

8

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

verwenden     
Anand 11.11.2010, 10:59
quelle

2 Antworten

12

Nach dem Post von David haben wir folgende Lösung:

%Vor%

Er wechselt zwischen den angegebenen Tabellen in: truncation strategie und wechselt danach zurück in: trasaction strategie.

    
Max 14.02.2012 13:01
quelle
4

Dies 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

    
David 09.02.2011 10:13
quelle