コントローラーでリクエスト (ファイルのアップロード) を行う統合テストがあります。テストは、CommonsMultipartResolver をセットアップしなくても機能します。しかし、本番環境をセットアップしなければならない瞬間に、CommonsMultipartResolver を追加する必要があります。しかし、これには私のテストがうまくいかないという副作用があります。テスト用ではなく、本番用に xml 構成が必要であることも同じです。テスト環境と本番環境のプロファイルを定義する可能性があることを知っています。プロファイルを持たない可能性は他にありますか?
multipartresolver の構成は単純です。
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:maxUploadSize="1000000000">
</bean>
私のテストも簡単です:
MockMultipartFile aFileObject = new MockMultipartFile("file", "filename.txt", "text/plain", "a File message".getBytes());
HashMap<String, String> contentTypeParams = new HashMap<String, String>();
contentTypeParams.put("boundary", "xyz");
MediaType mediaType = new MediaType("multipart", "form-data", contentTypeParams);
MockHttpServletRequestBuilder action = fileUpload(path).file(aFileObject));
mockMvc=MockMvcBuilders.webAppContextSetup(webApplicationContext)
.addFilter(new DelegatingFilterProxy("springSecurityFilterChain", webApplicationContext), "/*")
.build()
ResultActions resultPost =mockMvc.perform(action.contentType(mediaType));
assertThat(.....
(テストコードを少し簡略化しました (これはここでは問題ではありません。動作します。))
テストの実行中に Multipartresolver の構成を把握し、構成にコメントするたびに覚えておく必要がなく、すべてを本番環境に置くときに有効にする方法を知っている人はいますか?