1

最近、アプリケーションで Fixtures の代わりに FactoryGirl を使い始めました。以下は、factorygirl を使用して保存されたデータが別のページに表示されるかどうかをテストするために書いた仕様です。

describe "Tasks" do
  describe "GET /Ajax add", :focus do
    it "checks ajax js", :js => true do
      task = FactoryGirl.create(:task, :name => "writing test task")
      visit "/list"
    end
  end
end

このページでは、テーブル/list内のすべてのデータを取得するコードを記述しました。tasks(Task model)

サーバーを起動してページを実行しているときに出力を確認できますが、テストを実行すると、常に空のページが表示されます。

これはFactoryGirlが使用後にデータを全て削除するためでしょうか?または、テストで複数のページにアクセスした場合でもデータを保持するにはどうすればよいですか?

4

2 に答える 2

1

1) DatabaseCleaner のようなものを使用していますか? test_helper を見て、データベースをクリーンアップするために何かを行っているかどうかを確認してください

2) task の戻り値をチェックして、実際に正常に作成されていることを確認します。

于 2012-11-30T18:31:54.403 に答える
0

Fabricator (FactoryGirl の代替) を使用すると、Capybara セッションに持続しないという同様の問題がありました。plataformatec の人たちは、これに対する解決策を書きました。http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/

于 2013-11-12T09:10:52.437 に答える