scala - 在 Play 中使用 ScalaTest 对 Controller 进行单元测试!框架

标签 scala unit-testing playframework-2.2 scalatest

我正在使用 Play 2.2 和 ScalaTest。这是我第一次尝试在我的游戏应用程序中测试 Controller 。我这样做:

class TestArtistController extends PlaySpec with OneAppPerSuite {

  "ArtistController" must {

    "returns artists" in new WithApplication {
      val eventuallyResult = controllers.ArtistController.findNearCity("lyon")(FakeRequest())
      whenReady(eventuallyResult, timeout(Span(2, Seconds))) { result =>
        println(result.body) //it is an Enumerator[Array[Byte]]
        result.header.status mustBe 200
      }
    }
  }
}

它允许我正确测试返回结果,但我不知道如何测试结果的主体。 result.body 返回一个 Enumerator[Array[bytes]],我完全不知道如何转换它以检索 Json我正在发送。

执行此操作的好方法是什么?

最佳答案

导入 play.api.test.Helpers._ 并使用辅助函数,例如 contentAsJson(res)status(res)res 是您操作的结果(在某些情况下,您可能需要使用 res.run 来执行异步操作)。

关于scala - 在 Play 中使用 ScalaTest 对 Controller 进行单元测试!框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30549751/

相关文章:

java - 如何在 Play 2.2.x 的 dist 任务中禁用 scaladoc 生成(使用 build.sbt)?

java - 错误。 Play Framework 中覆盖消息无效

scala - 如何使用 Akka-HTTP 客户端 websocket 发送消息

c# - 基本 Controller 中的属性不会在 mvc5 的单元测试中触发

java - 简化和改进数据类型映射器的单元测试

unit-testing - 使用 Jest 在 Nuxt 中测试组件时如何添加/模拟 Nuxt Auth 库

scala - 在 Play 2.2、Spec2 测试中,我收到配置错误 [无法连接到数据库 [默认]]

scala - 将正确类型别名为存在类型(为什么要编译?)

reflection - 带参数的新实例

java - 最佳实践 : catching failure points in java.net.URL