vendredi 15 avril 2016

play 2.5 render view test, access to flash messages

Here the simple play render view test. In view template i trying to accesss session information throught flash.get(). But test failed with message There is no HTTP Context available from here. How add fake session data to tested application in junit test context?

public class ApplicationTest  extends WithServer {

private FormFactory formFactory() {
    return app.injector().instanceOf(FormFactory.class);
}

@Test
public void renderTemplate() {
    Content html;
    session().put("session","123");
    html = index.render(formFactory().form(Auth.Login.class));
    assertTrue(contentAsString(html).contains("Hello"));
}

}

Test ApplicationTest.renderTemplate failed: java.lang.RuntimeException: There is no HTTP Context available from here., took 0.544 sec
 at play.mvc.Http$Context.current(Http.java:57)
 at play.mvc.Http$Context$Implicit.flash(Http.java:307)
 at views.html.index_Scope0$index$$anonfun$apply$1.apply(index.template.scala:39)
 at views.html.index_Scope0$index$$anonfun$apply$1.apply(index.template.scala:38)
 at views.html.helper.form_Scope0$form.apply(form.template.scala:35)
 at views.html.index_Scope0$index.apply(index.template.scala:38)
 at views.html.index_Scope0$index.render(index.template.scala:141)
 at views.html.index.render(index.template.scala)
 at ApplicationTest.renderTemplate(ApplicationTest.java:37)

Aucun commentaire:

Enregistrer un commentaire