3.1.3. リクエスト単体テストの実施方法(ファイルアップロード)

ファイルアップロードのテストは、ウェブアプリケーションのテストの一種である。 したがって、ファイルアップロードのテストを実施するには、ウェブアプリケーションのリクエスト単体テストの実施方法が前提となる。

ファイルアップロードのテストをする場合、HTTPリクエストパラメータにアップロードファイルを指定する必要がある。本項では、HTTPリクエストパラメータにアップロードファイルを指定する方法を解説する。

3.1.3.1. アップロードファイルの記述方法

HTTPリクエストパラメータの値に、以下の記述をすることで、 HTTPリクエストパラメータにアップロードファイルを指定できる。

${attach:ファイルパス}

補足

ファイルパスは、テスト実行時のカレントディレクトリからの相対パス、すなわち、プロジェクトルートディレクトリからの相対パスで記述する。

3.1.3.2. バイナリファイルの場合

画像ファイル等、バイナリファイルをアップロードする場合は、事前にファイルを配置しておき、 そのファイルへのパスを指定する。

以下の例では、uploadfileというキーで、プロジェクト配下のtest/resources/imagesディレクトリにあるpicture.pngをアップロードする。

<project_root>
     + test
        + resources
           + images
              + picture.png

LIST_MAP=requestParams

uploadfile comment public
${attach:test/resources/images/picture.png} アップロードします。 false

3.1.3.3. 固定長ファイル、CSVファイルの場合

固定長ファイルCSVファイルをアップロードする場合、そのファイル内容をテストデータシートに記載する。テスト実行時に、自動テストフレームワークがこのデータを元にファイルを作成する。

以下の例では、workディレクトリ配下にmember_list.csvファイルを作成し、 そのファイルをアップロード対象として指定している。


LIST_MAP=requestParams

uploadfile comment
${attach:work/member_list.csv} 10月度新規会員を登録

SETUP_FIXED=work/member_list.csv

// ディレクティブ

text-encoding Windows-31J  
record-separator CRLF  

// データ

name age address
山田太郎 30 東京都港区芝浦1-1
田中次郎 20 大阪府門真市東田町2-2

補足

固定長ファイルやCSVファイルをアップロードする場合でも、 バイナリファイルと同様に、事前にファイルを用意しておくことも可能であるが、 テストデータの保守容易性を考慮するとテストデータシートに記載しておくべきである。