如何操纵在play2.0测试环节中,请求和响应(How to manipulate Session,

2019-06-24 01:35发布

您好我有这对要求(有些页眉数据和饼干),响应(设置或删除Cookie)和会话(存储帐户及与rememberMe信息)工作的验证服务。

在游戏1.x中很容易伪造请求,响应,Cookie和会话。 它可以很容易地设定Session.current().set(new Session()) 在玩这个2.0不工作了。

我怎么能一个cookie添加到请求吗? 我怎么能操纵的会议? 只见存在FakeApplication和FakeRequest,但我没有得到它,如何与他们合作。

任何暗示理解。

Answer 1:

这是不是准备好进行游戏2.0,但在播放2.1(在当前主),你就可以这样写:

fakeRequest(GET, "/foo")
    .withSession("bar", "baz")
    .withCookies(cookie("bah", "toto"));


Answer 2:

这是可能做到这一点类似于play1.x。 中央点是Context 。 此外,你必须创建一个DummyRequest它实现你需要的方法。 然后,它可以创建以下

final Request request = new DummyRequest();
Context.current.set(new Context(request, new HashMap <String, String>(), 
        new HashMap <String, String>()));

在您的测试,你可以得到Context.current().session() Context.current().response()Context.current().request()

你可以在这里看到一个测试例子 。



文章来源: How to manipulate Session, Request and Response for test in play2.0