にリクエストパートを設定します。しかし、私はそれを動作させることはできません。私は春のコードを経ては、私がこれまで読んだすべては<code>MockMvcRequestBuilders.fileUpload().file()</code>が解決することである私は(春のテスト(MVC)を介して)テストする<code>servletRequest.getParts()</code></p> <p>を使用して、コントローラをしようとしている春のテストMVC
MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.fileUpload("/foo")
.file(new MockMultipartFile("file", new byte[] { 1, 2, 3, 4 }));
MockHttpServletRequest rq = builder.buildRequest(null);
Assert.assertEquals(1, rq.getParts().size()); // result 0
を失敗し、次のテストを書いた、とgetParts()
は(Map<String, Part> parts)
行うための別の方法が存在しなければならない別のリストからその要素を取得するときにfile(...)
への呼び出しはList<MockMultipartFile>
の要素が追加されますそれ...
編集1
私は、コントローラをテストするために使用しているコードは:
ResultActions result = mockMvc.perform(
MockMvcRequestBuilders.fileUpload(new URI("/url")).file("param", "expected".getBytes()))
どのようにこれをテストしていますか?コントローラメソッドを呼び出すだけで、実際にMockMvcを使用していますか?あなたが間違って使用している後者の場合、それは前者の場合、あなたはそれを困難にしています。 –
私はMockMvcを使用しています。私が使用しているコードを追加しました –
'MultipartFile'は' Part'ではないので動作しません。 MockMvcでは現時点では不可能なパーツとafaikしか追加できません。あなたの唯一の変更はおそらく、 'Part'を模擬してカスタムのRequestBuilderを作成して自分自身を追加することです。 –