在Play中使用ScalaTest进行单元测试控制器!骨架

时间:2015-05-30 18:20:59

标签: scala unit-testing playframework-2.2 scalatest

我正在使用Play 2.2和ScalaTest。这是我第一次尝试在我的播放应用程序中测试控制器。我是这样做的:

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

这样做的好方法是什么?

1 个答案:

答案 0 :(得分:3)

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