私が取り組んでいるプロジェクトには、実際に外部に出てネットワーク経由でサードパーティの API にヒットする統合テストがあります...これらのテストの実行には非常に長い時間がかかります。VCR のようなものを実装して、テストがやり取りするデータをフィクスチャとしてキャプチャできるようにし、これらのテストの信頼性と速度を向上させることを提案しました。
現時点ではコードベースにアクセスできませんが、テストは次のようなことを行っていたと思います。
before do
login_some_user
end
after do
make_web_request_to_clear_items_in_cart
end
it "adds some items to the user's cart" do
make_web_request_to_add_item_to_a_cart
end
したがって、基本的に before ブロックは Web リクエストを作成し、サンプルはまったく異なるリクエストを作成し、after ブロック (使用するのが理想的ではないことはわかっています) は、サンプルによって作成されたレコードをクリーンアップするための 3 番目のリクエストを作成しました。
Web リクエストをキャプチャし、例に基づいて名前を付けて保存する、spec_helper の around ブロックをセットアップします。ただし、テストを繰り返し実行した後、テストが非常に不安定になり、合格することもあれば、合格しないこともあることがわかりました。前と後のブロックを別の VCR.use_cassette ブロック呼び出しでラップしようとしましたが、違いはありませんでした。
私は何かが足りないのではないかと思っています.このような複数のリクエストを処理する方法はありますか?