0

検索方法をテストしたいのですが、to_indexed_json結果をテストする方法を教えてください。

これが私のテストです:

describe Search do
  before do
    Question.index.delete
    Question.tire.create_elasticsearch_index
    app = create :app, name: "Marketing", id: 76
    @question1 = create :question, content: "Some super question?", app: app
    @question2 = create :question, content: "Some extra question?", app: app
  end

  describe "#results" do
    it "returns matched results" do
      Search.new("Some", \[76\]).results.should == \[@question1, @question2\]
    end
  end
end

そして、これは私が受け取るエラーです:

4

1 に答える 1

2

まず、to_indexed_json投稿されたコードを実際にテストしているわけではありません。検索結果についての期待をテストしているのです。それは問題なく、実際にはもっと合理的なことです:)、それでも別のことです。

次に、統合テストでは、Tire::Index#refreshテスト データのインデックスを作成した後に必ず を呼び出して、すぐに検索できるようにします。デフォルトの遅延は 1 秒です。

3 番目に、コードでいくつかのテスト モデルを作成し、これらの正確なオブジェクトが返されることを期待します。Tireをこのように動作させるには、オプション:load => true(データベースからモデルをロードする) を使用する、オブジェクトの等価性について期待値を設定せずに、たとえばテストを行います。モデルのプロパティ (例: content)。

于 2012-12-27T07:41:00.687 に答える