我有一个方法,它创建一个json对象并返回字符串。 我想就这个功能的单元测试,但该方法返回一个字符串,像这样:斯卡拉测试单元与JSON字符串
{"att1":"{\"scale\": 0, \"significand\": 10}","name":"john","lastname":"smith","job":"developper"}
如果你复制粘贴此行成逗号,你没有得到的字符串。而且我不能再使用JSON.parseFull(),因为这不是一个String。我不希望我的方法直接返回一个jsonObject。
我用这种对象的创建我的JSON字符串
val objectMapper = new ObjectMapper()
val myJson= objectMapper.createObjectNode()
objectMapper.writeValueAsString(myJson)
而且我用这个代码,使我的单元测试:
class MyJsonTest extends FlatSpec {
"My method" should "generate a valid json" in {
val myJsonString = getMyJson() //method to test
// this is not a valid String but my method return this:
val correctJson = "{"att1":"{\"scale\": 0, \"significand\": 10}","name":"john","lastname":"smith","job":"developper"}"
assert(correctJson === myJsonString)
}
你有什么想法?
我会说创建的json是无效的,因为结果字符串不应包含转义字符'\'。 使用原始字符串验证json很简单,因为您不必使用转义字符,并且可以执行完全匹配字符串 “”“{”attr1“:{”scale“:0,”significant“:10},”name“:”John“}”“” –