Unë jam duke punuar për të marrë një rast testimi që punon me Play 2.1.1 dhe Specs2 dhe po has një problem interesant. Unë krijoj një FakeRequest për ta dërguar te një kontrollues, por funksioni në kontrollues nuk thirret kurrë.
Këtu është kodi i provës (pak i thjeshtuar, por me të gjitha pjesët lëvizëse):
"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>)
)
}
}
Dhe këtu është funksioni kryesor në kontrollues (mirë, të paktën vetëm fillimi i tij):
def main() = Action(BodyParsers.parse.xml) { request =>
println("main")
}
Ky kod kurrë nuk godet kryesore. Çuditërisht, megjithatë, nëse bëj FakeHeader pa parametra dhe heq AnyContentAsXml, thjesht duke dërguar Elementin Xml te kontrolluesi, atëherë funksionon:
new FakeRequest(
PUT,
routes.MyController.main().toString,
new FakeHeaders,
<xml>xml</xml>
)
A ka dikush ndonjë ide pse do të ndodhte kjo?