2017-04-09 102 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。看看你使用的过滤器