私は、仕事をしてデータをファイルにパックし、そのファイル(Content-Type: application/force-download
)を戻すWebアプリケーションを開発しています。今私はいくつかの統合テストを実装しています。私はデータを要求し、Webアプリケーションは私にファイルを返します。テストで期待されるデータがダウンロードされると、Webアプリケーションは正しく動作します。私はthisを読んで、とてもインスピレーションを感じましたが、あなたがダウンロードしたいファイルをビルドするときにその応答は有効ですか?ファイルをダウンロードする統合テスト
0
A
答えて
1
いくつかの方法があります。最良から悪い順(YMMV):
出力を意味的にチェックします。たとえば、JSONの場合、解析が可能であり、期待されるキーと値が存在することを確認します。イメージの場合は、それが解析され、正しいフォーマットを持つことを確認します。
プロ:実際に気にしていることをテストしているだけです。テストの失敗は、特定の問題を指摘することができます。
Con:より多くの作業が必要です。
ファイルをバイト単位で直接比較します。 "ゴールデンマスター"アプローチ。ファイルが数行より大きい場合、またはバイナリファイルの場合は、ディスクに配置し、統合テストを実行します。これにより、外部プログラムで簡単に表示/編集できるようになります。
Pro:予想されるファイルがどのように見えるかは簡単です。
Con:不適切な変更があった場合に脆くなることがあります。たとえば、JSONオブジェクトのキーの順序は重要ではありません。さらに悪いことに、PNGイメージを生成している場合、作成時間がファイルに埋め込まれ、毎回テストが失敗する可能性があります。
ファイルハッシュを比較してください。私はこれを最後の手段と考えています。
プロ:ファイル全体を統合テストに保存する必要はありません。本当に大きい場合は、いいです。
Con:テストの失敗は何も意味しません。あなたの統合テストに埋め込まれたハッシュでさえあなたには何も言われません。これはちょうど "変化検出器"テストです。
関連する問題
- 1. Grails:統合テストでリダイレクトをテストする
- 2. MSF4J統合テスト
- 3. 統合テストAndroid
- 4. キャメルプロセッサユニット/統合テスト
- 5. JavaScript統合テスト
- 6. スプリングブート統合テスト
- 7. JMS統合テスト
- 8. 郵便受け統合テストとTeamCityを統合するには
- 9. Jpa統合テストPersistence.xml
- 10. 春@PathVariable統合テスト
- 11. シングルサインオンページの統合テスト
- 12. 統合テスト用データアクセスコード
- 13. ユニットと統合テスト
- 14. Jenkinsの統合テスト
- 15. Magento FedEx統合テスト
- 16. TeamCityデータベース統合テスト
- 17. Railsの統合テスト
- 18. Akkaネット統合テスト
- 19. 統合テストは2.5
- 20. Oracle Selenium統合テスト
- 21. BotFrameworkの統合テスト
- 22. 統合キャンバスのテスト
- 23. ガベージデータの統合テスト
- 24. コールバックによる統合テスト
- 25. drone.ioによる統合テスト
- 26. 統合テストからファイルをエンドポイントにアップロードする方法
- 27. Maven - 統合テストを追加
- 28. 統合テストでテストデータを追加する
- 29. Spring統合によるFTPファイルのダウンロード順序
- 30. Azure CDNファイルのダウンロード統計
こんにちはトーマス。プラットフォームのcharsetエンコーディングが変更されたときに、ファイルをバイトごとに比較することについてお勧めしますか?テストはLinux上ではできますが、Windows上では動作しません。期待した結果がLinuxマシンで得られたからです。 – Francesco
プラットフォームに関係なく、すべての場合にUTF-8を使用します。あなたの2つのプラットフォームのどちらが間違っているかは、あなた自身で理解する必要があります... – Thomas