使用solr和rspec发布

使用solr和rspec发布,rspec,autocomplete,sunspot-rails,Rspec,Autocomplete,Sunspot Rails,我有一个提示自动完成的方法。我也在使用Solr 控制器中的方法如下所示: def address_autocomplete search = Sunspot.search(Address) do fulltext params[:term] with(:user_id, current_user.id) end.results render json: search.map(&:address_with_id_to_string).to_j

我有一个提示自动完成的方法。我也在使用Solr

控制器中的方法如下所示:

def address_autocomplete
    search = Sunspot.search(Address) do
      fulltext params[:term]
      with(:user_id, current_user.id)
    end.results
    render json: search.map(&:address_with_id_to_string).to_json
  end
我正在为上述方法编写rspec。上述方法的试验如下所示:

require 'spec_helper'

describe AddressesController, type: :controller do
  describe Address, search: true do
    describe 'Search' do
      before(:each) do
        Sunspot.remove_all!
        Sunspot.commit
      end

      let!(:address) do
        create(:address,
               name: 'Michael Jackson',
               street: '100 spear st',
               postal_code: '94105',
               state_or_region: 'California',
               phone_number: '123-456-7890',
               city: 'San Francisco',
               user: user).tap { |b| b.index! }
      end

      describe 'GET #address_autocomplete' do
        let!(:user)  { create :user }
        it 'It prompts autocomplete of addresses' do
          xhr :get, address_autocomplete_addresses_path , term: 'Mic'
          debugger
          ActiveSupport::JSON.decode(response.body).to eq(address.address_with_id_to_string)
          //Check response is desired string or not
        end
      end
    end
  end
end

在上面的代码中,调试后我发现Sunspot无法返回搜索数组中所需的响应。搜索数组为空。我无法找到发生这种情况的原因。

问题不在于solr。我正在集成测试文件夹中编写测试。这给我带来了很多问题。由于在集成测试文件夹中找不到设备帮助程序,因此我无法在用户中使用
登录
。我将测试转移到单元测试,现在它运行良好