Mən Play 2.1.1 və Specs2 ilə işləyən test işi əldə etmək üzərində işləyirəm və maraqlı problemlə üzləşirəm. Nəzarətçiyə göndərmək üçün FakeRequest yaradıram, lakin nəzarətçidəki funksiya heç vaxt çağırılmır.
Budur test kodu (bir qədər sadələşdirilmiş, lakin bütün hərəkət edən hissələrlə):
"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>)
)
}
}
Və burada nəzarətçidəki əsas funksiya (yaxşı, heç olmasa onun başlanğıcı):
def main() = Action(BodyParsers.parse.xml) { request =>
println("main")
}
Bu kod heç vaxt əsas düyməni vurmur. Qəribədir ki, heç bir parametr olmadan FakeHeader düzəltsəm və AnyContentAsXml-i silsəm, sadəcə Xml Elementini nəzarətçiyə göndərsəm, o zaman işləyir:
new FakeRequest(
PUT,
routes.MyController.main().toString,
new FakeHeaders,
<xml>xml</xml>
)
Bunun niyə baş verəcəyi barədə hər hansı bir fikri varmı?