J'ai le code de lecture suivant (SCALA):
scala> val action = simple action: play.api.mvc.Action[play.api.mvc.AnyContent] = Action(parser=BodyParser(anyContent))
3 Réponses :
action code> n'a pas de contenu car c'est un objet que vous pouvez utiliser pour appliquer une demande
code> et obtenir un résultat.
val request: Request[A] = ... // create a request instance
val resultFuture: Future[SimpleResult] = simple(request)
val bodyAsBytes: Array[Byte] = Await.result(Await.result(resultFuture, timeout.duration).body |>>> Iteratee.consume[Array[Byte]](), timeout.duration)
Merci, comment puis-je instancier une nouvelle demande [a] objet, et quel est le [A]? Je pense que c'est une contrainte de type de type, mais je ne reçois pas le 'a'. Beaucoup de mon incardition avec Scala ne connaît pas lorsque nous sommes en mode OO ou en mode FP!
Le A code> est ce que vous voulez, c'est un paramètre de type à fournir au constructeur de type pour créer un type de béton. Pour vous, vous pouvez regarder
play.api.test.fakerequest code>, il est fourni par la lecture! effectuer des tests d'unité plus faciles.
Merci, j'ai remarqué qu'il y avait une pièce de théâtre.api.test.fakerequest dans les documents de l'API, mais je ne peux pas l'importer sur la replique ou dans mon code que je suppose que cela signifie qu'il n'est pas expédié avec le jeu standard.
@ user3231690 Vous devez inclure la bibliothèque Play-Test_2.xx.jar (où XX est votre version de lecture).
Plutôt que l'extraction de résultats manuels VPTHERON décrit, vous pouvez utiliser Il y a aussi play.api.test.helpers code>:
contentoSring code > etc. p> p>
bâtiment sur le Réponse de HUW , voici le code de travail complet:
import play.api.test._ def getStringFromAction(action:Action[AnyContent]):String = { val request = new FakeRequest("fakeMethod", "fakeUrl", new FakeHeaders, "fakeBody") val result = action.apply(request).run import scala.concurrent.duration._ Helpers.contentAsString(result)(1000 millis) }
@ JUS12 Savez-vous comment faire fonctionner votre réponse avec la lecture 2.5? Fakerequest est parti, remplacé par RequestBuilder et le code ci-dessus veut également un matérialisateur AKKA. Depuis la mise à niveau vers 2,5, le code ci-dessus ne compile plus.
Je suis désolé mais la question n'est pas claire pour moi. Vous souhaitez imprimer la réponse HTML finale sur RÉPL?