为MultipartFormData java Play Framework 2创建fakeRequest

时间:2013-12-04 17:42:05

标签: java playframework-2.2

我想测试我的上传例程。但没有任何作用。有没有办法在Java中测试上传MultipartFormData上传?

我的方法: 第一个,但不起作用... withFormURLEncodedBody只接受一个地图。

    // generate fake cookie
    Cookie fakeCookie = Utils.fakeCookie(userInfo.getName());
    // create a fake request
    FakeRequest fakeRequest = new FakeRequest("POST", "/restricted/upload");
    // create an Hashmap for data
    Map<String, Object> data = new HashMap<String, Object>();
    File file = new File(
            RootPathConstant.TEST_FILES_PATH.concat(File.separator
                    .concat("test.nt")));
    data.put("file", file);
    // call an action with some parameters and receive results
    Result result = Helpers.callAction(controllers.routes.ref.UserOptions
            .uploadDataset(),fakeRequest.withFormUrlEncodedBody(data)
            .withCookies(fakeCookie));

我的第二种方法是这样的:

Test MultipartFormData in Play 2.0 FakeRequest 但是在帖子执行后它不会启动任何保存操作。可以访问该站点,但似乎没有调用post controlleraction

有人有想法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我尝试了一些方法后解决了这个问题。

解决方案:

因为我正在使用securesocial 2插件,所以我在java中编写了一个登录例程,然后获取了必要的cookie,将它们添加到localcontext,然后使用该localcontext执行另一个请求将文件发送到服务器。

这对我有用。