Rspec と Capybara を使用して統合テストを作成しています。私は、activerecord オプションの作成をテストする際に、同じコードを実行しなければならないことが非常に多いことに気付きました。
例えば:
it "should create a new instance" do
# I create an instance here
end
it "should do something based on a new instance" do
# I create an instance here
# I click into the record and add a sub record, or something else
end
問題は、ActiveRecord オブジェクトがテスト間で永続化されていないように思われますが、Capybara はデフォルトで仕様内で同じセッションを維持します (奇妙)。
これらのレコードをモックすることもできますが、これは統合テストであり、これらのレコードの一部は非常に複雑であるため (画像が添付されているなど)、Capybara を使用してユーザー向けフォームに入力する方がはるかに簡単です。
新しいレコードを作成する関数を定義しようとしましたが、何らかの理由で適切ではありません。これのベストプラクティスは何ですか?