Как я могу написать спецификацию запроса с Capybara / RSpec для тестирования поиска Sunspot / Solr? - PullRequest
6 голосов
/ 09 августа 2011

Я бы хотел написать свои обычные спецификации запросов RSpec / Capybara для проверки функциональности поиска с использованием Sunspot и Solr.Я копался, но не могу найти, как заставить это работать.Я установил самоцвет sunspot_test и проверил, что созданные продукты действительно существуют.Возможно, проблема связана с индексацией?Чего мне не хватает?

require 'spec_helper'

describe "search" do

  context "when searching by name/description" do

    let!(:super_mario_bros_3) { Factory(:product, :name => 'Super Mario Bros. 3') }
    let!(:legend_of_zelda)    { Factory(:product, :name => 'Legend of Zelda') }

    before { Product.reindex; Sunspot.commit }


    it "should only find games matching the search text", :js => true, :search => true do
      # search_for fills in and submits the search form
      search_for("Super")

      # This yields an empty array
      p Product.search { keyword "super" }.results

      # These fail
      page.should have_content super_mario_bros_3.name
      page.should have_no_content legend_of_zelda.name
    end

  end

end

1 Ответ

5 голосов
/ 09 ноября 2011

Вы, вероятно, делаете ту же ошибку, что и я.Смотрите ответ на мой пост здесь - Sunspot и RSpec fail.Кажется, что фиксация не работает

Любой тест, использующий Sunspot, должен быть следующим:

describe "search", :search => true do

и убедитесь, что в вашем spec_helper есть следующее.rb

require 'sunspot_test/rspec'
...