2011-11-13 9 views
2

で外部のAPIの多くは、私が例おいしいのために、外部APIの依存関係の多くのRailsのアプリを開発しています。彼らは時間の初めからすべてのデータをロードしようとしている最初の呼び出しでテストRailsの

  • : すべてのAPIは、2つのワークフローを共有します。
  • 次のすべての呼び出しでは、最後の実行時間(サポートされている場合)でフィルタリングされたデータがロードされます。

実際にそれらをテストするには、APIごとにテストアカウントを作成するか、少なくともプライベートアカウントを使用する必要があります。 VCRでさえ、それらは一度呼び出されるためです。そして私の最大の問題は、DateTimeの2つの異なるワークフローをエミュレートするために、たくさんのことを混乱させる必要があるということです。 Timecopは本当に簡単ですが、お尻の痛みのように感じます。

別のアプローチは、APIの呼び出しとその対応する応答完全に偽物にあるが、これは本当のテストを意味し、さらに私は、APIを使用して変更や問題を実現することはありません。

提案がありますか?多分両方の方法の良い組み合わせ?

答えて

1

は両方を行います。定期的な実行頻繁にテストスイートのすべてをスタブ/からかっによって

スタート。すべてのきめ細かいモデル/コントローラのテストでこれを行います。

そして、本当の(テスト)のサーバを打つ通常のワークフローシナリオをカバー(例えば統合テスト中)エンド・ツー・エンドのテストを追加します。

また、Test :: Unitの代わりにキュウリなどのエンドツーエンドテスト用に別のテストスイートを使用するか、通常のテストスイートと異なる限り、セレン/ Watirを使用してください。