11

Spring Boot でファイル アップロード サービスを作成し、Spring Mock Mvc と MockMultipartFile でテストします。最大ファイル サイズを超えたときにエラーがスローされるかどうかをテストしたい。次のテストは、200 を受け取るため失敗します。

RandomAccessFile f = new RandomAccessFile("t", "rw");
f.setLength(1024 * 1024 * 10);
InputStream is = Channels.newInputStream(f.getChannel());

MockMultipartFile firstFile = new MockMultipartFile("data", "file1.txt", "text/plain", is);

mvc.perform(fileUpload("/files")
    .file(firstFile))
    .andExpect(status().isInternalServerError());

アップロード ファイルのサイズをテストする可能性はありますか?

4

3 に答える 3

9

ドキュメントによると:

length メソッドによって返されるファイルの現在の長さが newLength 引数よりも小さい場合、ファイルは拡張されます。この場合、ファイルの拡張部分の内容は定義されていません。

代わりにこれを試してください:

byte[] bytes = new byte[1024 * 1024 * 10];
MockMultipartFile firstFile = new MockMultipartFile("data", "file1.txt", "text/plain", bytes);
于 2015-11-12T15:36:22.790 に答える