json - Scalatra 测试 RESTful JSON 对象

标签 json scala rest scalatest scalatra

我正在使用 Scalatra 为一些 JSON RESTful API 编写测试,一个片段如下所示

class MyScalatraServletTests extends ScalatraSuite with FunSuite {

test("An valid request should return 200") {
    get ("/rest/json/accc/B1Q4K3/1") {
      status should equal (200)
      body should include ("TEST")
    }
  }
}

正文 预期是 Scalatra 通过其 JSON 支持序列化的 JSON。我的问题是如何转换 正文 回到scala中的同一个case类实例,大大简化了测试?

最佳答案

json4s 可以直接用于从 JSON 值中提取案例类。

import org.json4s._
import org.json4s.jackson.JsonMethods._
val parsedBody = parse(body)
parsedBody.extract[MyCaseClass]

您还可以使用类似 XPath 的表达式来查询 JSON。
val parsedBody = parse(body)
val email = (parsedBody \ "user" \ "email").values
email should be ("example@example.org")

您可以调用.valuesString 获取原始 Scala 值(Int s、JValue s 等​​) s(json4s 的 JSON 文档的内部表示)。

json4s introduction所有这些的例子。

关于json - Scalatra 测试 RESTful JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14157045/

相关文章:

scala - 如何在 Scala JS build.sbt 中设置主类?

arrays - 二维scala数组迭代

rest - 如何使用 PUT 和 DELETE 进行 REST

ios - 使用 restkit api objective-c 调用 Web 服务时出错

java - 如何通过Key获取动态JSON值而不解析为Java对象?

javascript - PHP 将 JSON 对象返回给 Javascript [AJAX CALL] 不起作用

scala - Play Framework 2.0 BodyParser - 推送解析 XML 流

java - 从数据库模式生成基于 REST 的服务

json - 用于验证要导入 Firebase 的 JSON 的工具

json - 如何使用mochijson在erlang中编码数据结构?