使用solr和rspec发布
我有一个提示自动完成的方法。我也在使用Solr 控制器中的方法如下所示:使用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
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。我正在集成测试文件夹中编写测试。这给我带来了很多问题。由于在集成测试文件夹中找不到设备帮助程序,因此我无法在用户中使用
登录
。我将测试转移到单元测试,现在它运行良好