Java 测试AJAX文件上传
我想在我的应用程序中测试文件上传。上传本身的处理如上的直接文件上传部分所述 我正在使用最新的Play20版本,并按照所述进行构建 我当前的代码如下所示,但显然缺少向请求中添加测试文件的部分: Test.javaJava 测试AJAX文件上传,java,playframework-2.0,Java,Playframework 2.0,我想在我的应用程序中测试文件上传。上传本身的处理如上的直接文件上传部分所述 我正在使用最新的Play20版本,并按照所述进行构建 我当前的代码如下所示,但显然缺少向请求中添加测试文件的部分: Test.java FakeRequest请求=FakeRequest(POST,“/measurement/123/file”); //如何将测试文件附加到此请求? 结果=routeAndCall(请求); 阿塞尔托克(结果); Controller.java publicstaticuploadfil
FakeRequest请求=FakeRequest(POST,“/measurement/123/file”);
//如何将测试文件附加到此请求?
结果=routeAndCall(请求);
阿塞尔托克(结果);
Controller.java
publicstaticuploadfile(){
RequestBody body=request().body();
if(body!=null){
RawBuffer RawBuffer=body.asRaw();
if(rawBuffer!=null){
File uploadedFile=rawBuffer.asFile();
// ...
}
}
返回ok();
}
根据,FakerRequest调用的签名为:
您应该能够检查将文件上载到应用程序的POST请求的主体,并将该主体作为参数复制到测试代码中。另一种方法是根据on multipart POST构建它。我的Play 2 Java文件上传测试解决方案是创建UploadFakereRequest扩展FakereRequest。在类中,我有自己的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");
你能举个例子吗?
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");