アイテムについての情報を取得し、それを保持するRequestMappingをテストしたい場合は、イメージをアップロードすることもできます。ただし、イメージのアップロードは必須ではなく、私のHTMLフォームはenctype="multipart/form-data"
を使用しています。私は、コントローラは次のようになり、実際には任意のファイルをアップロードしなくても、コントローラをテストしようとしています:ファイルをアップロードせずにMockMvcでテストしようとすると、現在のリクエストはマルチパートリクエストではありません。
@RequestMapping(value="/admin/upload", method=RequestMethod.POST)
public ModelAndView addItem(
@RequestParam(value="id", required=true) Integer id,
@RequestParam(value="name", required=true) String name,
@RequestParam(value="image", required=false) MultipartFile file,
) throws IOException {
// some stuff here
ModelAndView mov = new ModelAndView();
return mov;
}
私は不足しているパラメータの問題を取得していますfalse
するrequired
フラグを設定し、より多くのしたにも関わらず、重要なのは、mockMvcリクエストでヘッダーを送ることができます。これにより、画像をアップロードする必要なくこのマッピングをテストできます。マルチパートリクエストのために
mockMvc.perform(post("https://localhost/store-admin/items/itemAddSubmit")
.param("id", 1)
.param("name", "testname").with(csrf()))
.andDo(print());
ありがとうございます。私は、 'fileUpload'リクエストタイプがあることに気付きませんでした。 – px06
残念ながら、この同じ形式を使用すると、パラメータが存在しないことを示しています(この場合は "ファイル"になります)。おそらく、私が正しく表現していないものがありますか?あなたの答えを拡大することは非常に役に立ちます。ありがとう。 – degreesightdc
@degreesightdcすべての引数を渡していますか?あなたがエラーstacktraceと他の関連する詳細で自分の質問を開始する方が良いでしょう。 –