【问题标题】:How can I write a request spec with Capybara/RSpec for testing Sunspot/Solr searching?如何使用 Capybara/RSpec 编写请求规范以测试 Sunspot/Solr 搜索?
【发布时间】:2011-08-08 21:48:24
【问题描述】:

我想编写我常用的 RSpec/Capybara 请求规范来测试使用 Sunspot 和 Solr 的搜索功能。我一直在挖掘,但找不到如何让它工作。我安装了 sunspot_test gem 并验证了创建的产品确实存在。问题似乎与索引有关,也许?我错过了什么?

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

【问题讨论】:

    标签: ruby-on-rails-3 testing solr rspec sunspot


    【解决方案1】:

    你可能犯了和我一样的错误。在这里查看我的帖子的答案 - Sunspot and RSpec fail. The commit doesn't seem to be working

    任何使用太阳黑子的测试都应该如下......

    describe "search", :search => true do
    

    并确保您的 spec_helper.rb 中有以下内容

    require 'sunspot_test/rspec'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 2015-09-04
      相关资源
      最近更新 更多