gpt4 book ai didi

playframework - Play 2-使用JsonBody的Scala FakeRequest

转载 作者:行者123 更新时间:2023-12-03 12:37:14 31 4
gpt4 key购买 nike

我正在尝试测试 Controller 上的操作。

这是一个相当简单的操作,它需要JSON并返回JSON:

  def createGroup = Action(parse.json) { request =>
val name = (request.body \ "name").as[String]
val collabs = (request.body \ "collabs").as[List[String]]


Ok(Json.toJson(
Map("status" -> "OK",
"message" -> "%s created".format(name))
))
}

我想验证返回的JSON确实正确。

我将如何使用FakeRequest做到这一点?

最佳答案

也许像这样:

"POST createGroup with JSON" should {
"create a group and return a message" in {
implicit val app = FakeApplication()
running(app) {
val fakeRequest = FakeRequest(Helpers.POST, controllers.routes.ApplicationController.createGroup().url, FakeHeaders(), """ {"name": "New Group", "collabs": ["foo", "asdf"]} """)

val result = controllers.ApplicationController.createGroup()(fakeRequest).result.value.get

status(result) must equalTo(OK)
contentType(result) must beSome(AcceptExtractors.Accepts.Json.mimeType)

val message = Region.parseJson(contentAsString(result))

// test the message response
}
}
}

注意: val result行现在可能是正确的,因为我来自使用异步 Controller 的测试中。

关于playframework - Play 2-使用JsonBody的Scala FakeRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11910405/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com