java - 测试 AJAX 文件上传

标签 java playframework-2.0

我想在我的应用程序中测试文件上传。上传本身的处理方式如 http://www.playframework.org/documentation/2.0/JavaFileUpload 上的直接文件上传部分所述。 .

我正在使用最新的 Play20 版本并按照描述构建它 here .

我当前的代码看起来像这样,但显然缺少向请求添加测试文件的部分:

测试.java

FakeRequest request = fakeRequest(POST, "/measurement/123/file");
// how to append test file to this request?    
Result result = routeAndCall(request);
assertOK(result);

Controller.java

public static uploadFile() {
    RequestBody body = request().body();
    if (body != null) {
        RawBuffer rawBuffer = body.asRaw();
        if (rawBuffer != null) {
            File uploadedFile = rawBuffer.asFile();
            // ...
        }
    }
    return ok();
}

最佳答案

我的 Play 2 Java 文件上传测试解决方案是创建一个扩展 FakeRequest 的 UploadFakeRequest。在类里面,我有自己的 withRawBody 方法,其中包含类似的东西:

 RawBuffer raw = new RawBuffer(1000, data.getBytes()); // No clue what is the correct value here...
 AnyContentAsRaw content = new AnyContentAsRaw(raw);
 fake = new play.api.test.FakeRequest(POST, fake.path(), new play.api.test.FakeHeaders(Scala.asScala(map)), content, "127.0.0.1");

关于java - 测试 AJAX 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192465/

相关文章:

java - 如何将 Java Servlet 与 Play 框架 Web 套接字混合?

ssl - 如何在 play 2.0 应用程序中设置 ssl?

scala - 从 Play 2 Scala Controller 提供静态/public/文件

java - 使用 Eclipse 进行 GWT 客户端调试

playframework - 尝试添加 jasperreports 以 Play Framework 2.2.0 时 Unresolved 依赖关系

java - 适用于 C# 和 Java 的 SonarQube 多语言项目

java - 解析博客文章

Scala、Play、Akka、Websocket : how to pass actor messages through websocket

Java调用同一个类的另一个方法中的一个方法

java - 这是在 Java 中表示扑克牌的正确方法吗?