首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scalatra测试restful对象

Scalatra测试restful对象
EN

Stack Overflow用户
提问于 2013-01-04 12:15:59
回答 2查看 3.3K关注 0票数 4

我正在使用Scalatra编写一些JSON restful的测试,如下所示

代码语言:javascript
复制
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")
    }
  }
}

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

EN

回答 2

Stack Overflow用户

发布于 2013-03-12 10:37:30

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

代码语言:javascript
复制
import org.json4s._
import org.json4s.jackson.JsonMethods._
val parsedBody = parse(body)
parsedBody.extract[MyCaseClass]

您还可以使用类似XPath的表达式询问JSON。

代码语言:javascript
复制
val parsedBody = parse(body)
val email = (parsedBody \ "user" \ "email").values
email should be ("example@example.org")

您可以调用.valuesJValue( JSON文档的内部表示形式)获取原始Scala值(StringInt,等等)。

有关所有这些的示例,请参阅json4s简介

票数 2
EN

Stack Overflow用户

发布于 2013-01-05 05:29:19

我不确定您使用的是哪个JSON序列化程序或原始类的结构,但是如果您想反序列化JSON回Scala,我建议您使用Jackson Scala模块:

https://github.com/FasterXML/jackson-module-scala

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14157045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档