gpt4 book ai didi

scala - 如何在 Play/Scala 中对 Controller 进行单元测试

转载 作者:行者123 更新时间:2023-12-02 01:22:20 24 4
gpt4 key购买 nike

我在尝试测试向 API 发送 POST 请求的 Controller 时遇到了问题。我尝试了不同的测试方法,但我一直收到相同的“400”响应。我相信 json val 的格式是正确的,因为我已经使用 Swagger 对其进行了测试并且它工作正常。谁能帮助我了解我在这里缺少的东西。非常感谢。

val json: JsValue = Json.parse("""[{"id":"1","address":"my address"}]""")
val mockAddressFinder = mock(classOf[AddressFinder])

"Example test" should {
"should be valid" in {
val controller = new Match(mockAddressFinder)
val results = controller.match.apply(FakeRequest(
POST,
"test/test",
FakeHeaders(Seq("Content-type"->("application/json"))),
json
))
results.onComplete {
case Success(_) => results.map(s => println("hello" + s.header.status))
case _=> println("did not work")
}
}

最佳答案

你可以试试这个。这对我有用。

   val fakeRequest = FakeRequest(POST, "/someUrl", FakeHeaders(), AnyContentAsJson(Json.parse("""[{"id":"1","address":"my address"}]""")))
val futureResult: Future[Result] = route(application, fakeRequest).get
val resultJson: JsValue = contentAsJson(futureResult)(Timeout(2, TimeUnit.SECONDS))
resultJson.toString mustBe """{"status":"success"}"""

关于scala - 如何在 Play/Scala 中对 Controller 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39226609/

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