2011-05-24 3 views
0

c'est mon test (avec Shoulda aides):problème avec Thinking Sphinx et Tests fonctionnels

context "searching from header" do 
    setup do 
     Factory(:city, :name => 'Testing It') 
     ThinkingSphinx::Test.index 'city_core', 'city_delta' 
     ThinkingSphinx::Test.start 

     get :index, 
      :query => 'Testing It' 
    end 

    should respond_with(:success) 
    should assign_to(:results) 
    should "have one city on the result" do 
     assert_equal(assigns(:results).count, 1) 
     assert_kind_of(assigns(:results).first, City) 
    end 

    ThinkingSphinx::Test.stop 
    end 

Tout fonctionne bien sauf le test dit toujours le nombre de résultats est 0, pas 1.

J'ai débogué ce code et quand la demande atteint le contrôleur, les index de Sphinx sont complètement vides, même avec l'appel explicite d'index pour cela.

Est-ce que je fais quelque chose de mal ici?

Toute aide appréciée.

Répondre

1

J'ai découvert le problème ... même si l'insertion dans la base de données est juste avant le ThinkingSphinx.index, avec les appareils transactionnels, après le bloc setup les enregistrements sont supprimés.

La solution a été d'ajouter à l'épreuve la ligne suivante:

self.use_transactional_fixtures = false 

Hope this helps toute personne ayant le même problème.

Questions connexes