我尝试使用来自播放测试API的fakeApplication和FakeRequest()来测试我的Play应用。
代码如下:
running(fakeApplication(extraConfig, settings),() ->
{
Map<String, String> body = new HashMap();
body.put("login", "login");
body.put("password", "password");
// Arrange
FakeRequest request = new FakeRequest(POST, "/login")
.withSession("user_id", "1")
.withCookies(new Http.Cookie("1", "1", 125, null, null, false, false)).withFormUrlEncodedBody(body)
;
// Act
Result result = route(request);}
无论我如何撰写我的请求(使用cookies,没有cookie,完全为空)并不总是同样的错误:
java.lang.IllegalArgumentException: maxAge must be either -1, 0, or a positive integer: -2147483648
at org.jboss.netty.handler.codec.http.DefaultCookie.setMaxAge(DefaultCookie.java:185)
at play.api.mvc.Cookies$$anonfun$10.apply(Http.scala:733)
at play.api.mvc.Cookies$$anonfun$10.apply(Http.scala:730)
at scala.collection.immutable.Stream.map(Stream.scala:376)
at play.api.mvc.Cookies$.encode(Http.scala:730)
at play.api.mvc.Cookies$.merge(Http.scala:781)
at play.api.test.FakeRequest.withSession(Fakes.scala:97)
at play.test.FakeRequest.withSession(FakeRequest.java:131).....
有时唯一不同的是这个“正数”-2147483648。
我真的被困在这里了。应用程序设置有很多不同的变体(使用Scala,使用Java,使用Play2.0.X,2.1,2.2等)。无论我做什么,我在这里提供的代码片段都不适用于我的Play 2.3.7 / Java。