Я написал следующую спецификацию.Удивительно, но это проходит, хотя результат не соответствует
фрагменту кода
val controller = new UserController(mockUserRepository,mockControllerComponents,mockSilhouette)
//val request = FakeRequest[AnyContentAsJson]("POST", "/ws/users/signup").withJsonBody(Json.parse("""{"bad": "field"}"""))//FakeRequest(POST,"/ws/users/signup").withJsonBody(Json.parse("""{"bad":"field"}"""));
val request = FakeRequest("POST","ws/users/signup")
println("sending request",request)
//val result = controller.someMethod()
val result = controller.signupUser(request)
Await.result(result,Duration("10 secs"))
result.map(response => {
println("response from controller:"+response)
response mustBe play.api.mvc.Results.BadRequest
})
отпечаткам консоли (sending request,POST ws/users/signup)
печати в контроллере.(received request,POST ws/users/signup)
Контроллер возвращает 200OK
, но я сопоставляю его с BadRequest
.Тем не менее тест проходит!response from controller:Result(200, Map())
Я подозреваю, что не правильно сопоставляю результат.Я делаю response mustBe play.api.mvc.Results.BadRequest
.Я знаю, что response
это Results
, но BadRequest
это Status
.Но я не знаю, как еще соответствовать, а также почему тест не проходит.Я также попробовал следовать и могу видеть, что значения отличаются, но даже тогда тест проходит успешно.
println("response from controller:"+response.header.status+" compared with "+play.api.mvc.Results.BadRequest.header.status)
response.header.status mustBe play.api.mvc.Results.BadRequest.header.status
консольная печать - response from controller:200 compared with 400