create_upload_urlを使用してGAEブロブストアに画像をアップロードしています
uploadURL = blobstore.create_upload_url('/upload')
gaeコードの単体テストを目的として、画像のアップロードをシミュレートできますか?または、テストベッドに画像データを挿入して、アップロードが成功したと想定する必要がありますか?もしそうなら、どのようにテストベッドに画像をアップロードしますか?
create_upload_urlを使用してGAEブロブストアに画像をアップロードしています
uploadURL = blobstore.create_upload_url('/upload')
gaeコードの単体テストを目的として、画像のアップロードをシミュレートできますか?または、テストベッドに画像データを挿入して、アップロードが成功したと想定する必要がありますか?もしそうなら、どのようにテストベッドに画像をアップロードしますか?
そこで何をテストしているのかについて@fredrikに同意してください。
とにかく、機能/ブラックボックス/類似のテストを行っている場合は、単純にWebtest フレームワーク(post
方法を参照) を使用して、実際のアップロードを行うことができます。
payload = [(fieldname, filename)]
test_app.post(uploadURL, upload_files=payload)
上記のtest_appを初期化する方法の詳細については、Python のハンドラー テストを参照してください。
テストの外観に関するコードを提供していただけますか?
webapp2 を使用して、upload_url へのリクエストを偽造できるはずです。リクエストを偽造する方法のサンプル コードについては、こちらをご覧ください。
一方で、テストの目的が何であるかを考える必要があります。画像のアップロードが機能することをテストすることが目的ですか、それともアップロードが完了した後のコードの動作ですか?
単体テストを実行するときは、他のライブラリへの依存関係を壊して、自分のコードのみをテストできるようにします。そして、実装テストの新しいスイートを追加します。つまり、 と url のリクエストを作成し、期待される応答が得られることを確認します。上記test_redirect_if_no_session
の例のように、ユーザーを必要とするページにリクエストを送信し、リダイレクト (http レスポンス コード 302) を期待します。
..フレドリック