playframework FunctionalTest中的PUT方法

playframework FunctionalTest中的PUT方法,playframework,Playframework,我使用GAE和playframework编写了一个小应用程序 我正在尝试测试PUT方法(用于更新)以及何时调用 从FunctionalTest中,它总是返回登录页面 虽然我在测试开始时登录,但可以通过 所有其他方法都很好 使用PUT方法时,会话似乎丢失 有人有类似的问题吗 我正在使用play 1.1.1,看起来FunctionalTest中有一个bug。 在所有的方法(POST、GET、DELETE)中,有一行包含cookie if (savedCookies != null) request.

我使用GAE和playframework编写了一个小应用程序

我正在尝试测试PUT方法(用于更新)以及何时调用 从FunctionalTest中,它总是返回登录页面 虽然我在测试开始时登录,但可以通过 所有其他方法都很好

使用PUT方法时,会话似乎丢失

有人有类似的问题吗


我正在使用play 1.1.1,看起来FunctionalTest中有一个bug。 在所有的方法(POST、GET、DELETE)中,有一行包含cookie

if (savedCookies != null) request.cookies = savedCookies;
这条线没有放好。另外,因为savedCookies是私有的,所以您不能在测试中访问它

解决方法是将测试中的cookies映射定义为一个私有变量,将其设置为登录响应cookies,然后使用此cookies使用新请求调用POST

这是我的密码

private static Map<String, Http.Cookie> lastCookies;

public void login(){
    String postUrl = Router.reverse("GAEActions.doLogin").url;
    Map<String, String> map = Maps.newHashMap();
    map.put("email", "as@gmail.com");
    map.put("url", "/");
    map.put("isAdmin", "true");
    Map<String, File> fileMap = Maps.newHashMap();
    Response post = POST(postUrl, map, fileMap);
    lastCookies = post.cookies;
}
public void test(){
....
    Request request = newRequest();
    request.cookies = lastCookies;
    Response post = PUT(request, url,"application/json",json);
私有静态映射;
公共无效登录(){
String postUrl=Router.reverse(“GAEActions.doLogin”).url;
Map Map=Maps.newHashMap();
map.put(“电子邮件”)as@gmail.com");
map.put(“url”、“/”);
map.put(“isAdmin”、“true”);
Map fileMap=Maps.newHashMap();
响应post=post(姿势、地图、文件地图);
lastCookies=post.cookies;
}
公开无效测试(){
....
Request=newRequest();
request.cookies=lastCookies;
Response post=PUT(请求、url、“应用程序/json”、json);

Hi,我们需要更详细一点:您使用什么代码来调用put、路由条目、方法的实现、put是否在测试之外工作等等。请提供尽可能多的信息:)您是在本地主机上测试还是在部署的GAE上测试?您对两者有何区别?我知道GAE不支持很多我想知道这是否是其中的一项功能。谢谢你的帮助。