Lucrez la obținerea unui caz de testare care să funcționeze cu Play 2.1.1 și Specs2 și mă confrunt cu o problemă interesantă. Creez o cerere Fake pentru a o trimite unui controler, dar funcția din controler nu este apelată niciodată.
Iată codul de testare (puțin simplificat, dar cu toate părțile mobile):
"controller" should {
"do something" in new WithApplication {
val controller = new MyController()
controller.main() {
new FakeRequest(
PUT,
routes.MyController.main().toString,
new FakeHeaders(Seq("Content-Type" -> Seq("text/xml"))),
AnyContentAsXml(<xml>xml</xml>)
)
}
}
Și iată funcția principală din controler (ei bine, cel puțin doar începutul acesteia):
def main() = Action(BodyParsers.parse.xml) { request =>
println("main")
}
Acest cod nu ajunge niciodată la principal. În mod ciudat, totuși, dacă fac FakeHeader fără parametri și elimin AnyContentAsXml, trimițând doar elementul Xml la controler, atunci funcționează:
new FakeRequest(
PUT,
routes.MyController.main().toString,
new FakeHeaders,
<xml>xml</xml>
)
Are cineva idee de ce s-ar întâmpla asta?