3
我用GAE和playframework寫了一個小應用程序。玩法框架中的PUT方法FunctionalTest
我試圖測試PUT方法(用於更新),當從FunctionalTest它總是甚至 雖然我登錄在測試開始時的登錄頁面返回,可以通過 所有被證實所謂的 另一種方法工作正常。
它看起來使用PUT方法的會話丟失
任何人都有類似的問題時,什麼樣的?
我正在使用play 1.1.1
我用GAE和playframework寫了一個小應用程序。玩法框架中的PUT方法FunctionalTest
我試圖測試PUT方法(用於更新),當從FunctionalTest它總是甚至 雖然我登錄在測試開始時的登錄頁面返回,可以通過 所有被證實所謂的 另一種方法工作正常。
它看起來使用PUT方法的會話丟失
任何人都有類似的問題時,什麼樣的?
我正在使用play 1.1.1
看起來好像FunctionalTest中存在一個錯誤。 在所有的方法(POST,GET,DELETE)也攜帶了餅乾
if (savedCookies != null) request.cookies = savedCookies;
此行是在PUT缺少以下行。另外,因爲savedCookies是私人的,所以您無法在測試中訪問它。
解決方法是在測試中將cookie映射定義爲私有變量,將其設置爲登錄響應cookie,然後使用此cookie與新請求調用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", "[email protected]");
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);
嗨,我們需要更多的細節:你使用的是什麼代碼來調用put,你的路由項,上述方法的實現,如果把作品中的測試外,等等您可以提供更多的信息:) – 2011-05-11 14:16:16
您是在本地主機還是在部署的GAE上測試?你們有什麼區別嗎?我知道GAE不支持許多Play核心功能,我想知道這是否是這些功能之一 – Codemwnci 2011-05-11 14:26:31
嗨,感謝您的幫助。 – mericano1 2011-05-11 14:50:23