2

私はRailsを初めて使用するので、おそらく何かわかりません... Mongoid gemでMongodbを使用するRailsアプリを作成しようとしています。

私はテストでいくつかの問題を抱えています。db コンテンツから生成された html テーブルが正しいかどうかを確認したい。

テストデータベースでデータを生成するために製作を使用しています。

私の問題は、生成されたデータをテストで使用できないことです。テストを正しく失敗/成功させるには、テストを 2 回実行し、コレクションを空にしないようにする必要があります。しかし、これは他のテストで問題を引き起こします。

仕様: 'spec_helper' が必要です

describe "OperatorsPages" do
  let(:operator) { Fabricate(:operator) }
  subject { page }

  before do
    sign_in_operator operator
  end

  describe "index page " do
    before(:all) do
      3.times { Fabricate(:operator) }
      visit operators_path
    end


    after(:all) do
      Operator.all.destroy
    end

    Operator.all.each do |operator|
      it { should have_selector 'td', text: operator.name }
      it { should have_selector 'td', text: operator.email }
    end
  end
end

テストが空のデータベースに対して実行される場合、Operators.all.each.to_a は空であるため、ループ内のアサーションはチェックされません。もう一度実行するとループは機能しますが、(明らかに) after(:all) フィルターを削除した場合のみです

このテストを最初に正しく実行し、その後空のコレクションを残すにはどうすればよいですか?

4

0 に答える 0