【发布时间】:2022-12-17 21:59:24
【问题描述】:
我正在为我的对象使用 Either 实现,因为我希望对象中的一个参数有一个空的 Json。这是对象:
case class Record(id: String, version: Long, payload: Either[PayloadObject, String]))
我正在尝试对此发送一个空的 json 字符串进行单元测试,如下所示:
val jsonString = """
| {
| "id":"someId"
| "version":123456
| "payload":{}
| }
|""".stripMargin
这是我反序列化上述 json 字符串的单元测试:
{
val deserialized = Record("someId", 123456L, Right(""))
val result = jsonString.convertTo[Record]
result must equal(deserialized)
}
这是抛出错误。 spray.json.DeserializationException:预期字符串为 JsString,但得到了 {}。如何将变量 serialized 表示为空 JsString 以运行单元测试?谢谢
【问题讨论】:
-
你的进口商品是什么?
-
旁注:JSON 是序列化形式。您在这里测试反序列化:将 JSON 转换为案例类。
-
更新了问题。导入是
spray.json._用于序列化-反序列化
标签: scala spray spray-json either