2017-04-09 111 views
2

我正在測試我的控制器,以打破我的頭。播放FakeMultipartRequest輸入的意外結束

我測試一個簡單的CSV上傳,文件存在下面的測試代碼和終端工作時,我試圖從一些簡單的REST客戶端像郵差

我正在上傳:輸入400意外結束。

嘗試了我能想到的一切。由於

val controller = application.injector.instanceOf[MyController] 
    val file = play.api.libs.Files.TemporaryFile(FileUtils.toFile(getClass.getResource(MyCSV))) 
    val data = new MultipartFormData(Map(), List(
     FilePart("file", "sample.csv", Some("application/csv"), file) 
    ), List()) 
    def fakeMultipartRequest: FakeRequest[AnyContentAsMultipartFormData] = FakeRequest(HttpVerbs.POST, "/upload") 
     .withHeaders(("Content-Type", "multipart/form-data; boundary=***boundry***")) 
     .withMultipartFormDataBody(data) 
    val result = call(controller.upload(), fakeMultipartRequest) 
    val str = contentAsString(result) 
    status(result) shouldBe OK 

和我的控制器很簡單:

def upload() = Action.async(parse.multipartFormData) { implicit request => ... 

回答

0

我面臨着同樣的問題。在我的情況下,這是由於一些自定義過濾器從請求中讀取令牌並將其解析爲json。看看你使用的過濾器