3 votes

Obtenir la valeur de la session à partir de ScalatraTest-ScalaTest

J'écris actuellement un certain nombre de tests Scalatra à l'aide du cadre ScalaTest et de la classe ScalatraSuite.

  test("when i try to go to the base url it shold redirect me "){
    get("/") {
      status should be(302) 
    }
  }

L'étape suivante me demande de vérifier l'existence de certaines valeurs de session, mais la façon de procéder n'est pas claire. Quelqu'un peut-il me conseiller ? Je suis en train de créer un trait SessionAccess qui, pour les besoins du test, est remplacé par un trait simple qui stocke la session dans un HashMap accessible, mais je suis certain qu'il existe un moyen plus simple ?

2voto

drexin Points 13865

J'ai examiné le code de ScalatraSuite et il semble qu'il n'existe aucun moyen de récupérer l'objet de session lui-même. Vous pouvez cependant exécuter plusieurs appels à l'intérieur d'une session pour vérifier le comportement attendu.

Si vous avez eu ces appels :

post("/start") {
  session("foo") = params("foo")
  // ...
}

get("/do_something") {
  session.get("foo")
}

vous pourriez le tester comme ceci :

test("Whatever inside of a session") {
  session {
    post("/start", "foo" -> "bar") {
      // assert...
    }
    get("/do_something") {
      body should equal ("bar")
    }
  }
}

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X