是否可以将字符串匹配器与specs2 Json匹配器结合使用?

时间:2013-02-12 17:05:54

标签: scala specs2

在specs2测试中,我正在使用JSON匹配器验证json字符串。我知道可以使用正则表达式来匹配像这样的值

someJson must */("key")/("(one|other)".r)

是否可以以简洁的方式使用其他字符串匹配器(例如包含)?

鉴于这个凌乱的例子:

val someJson = """{"blob": "multiline string
                  |with various line endings"}"""

此匹配器

someJson must */("blob")/contains("various")

看起来比

更清洁
someJson must */("blob")/"[^v]various.*".r

这不是正确使用的表达方式,但在这种情况下可能有用。

2 个答案:

答案 0 :(得分:6)

现在可以(在specs2-1.12.4-SNAPSHOT和specs2-1.13.1-SNAPSHOT中)使用specs2匹配器以及简单的字符串和正则表达式来匹配值和键:

person must /("p.*".r) */(".*on".r) /("age" -> "33")
person must /("p.*".r) */(".*on".r) /("age" -> "\d+\.\d".r)
person must /("p.*".r) */(".*on".r) /("age" -> startWith("3"))
person must /("p.*".r) */(".*on".r) /("age" -> (be_>(30) ^^ ((_:String).toInt)))

答案 1 :(得分:2)

看起来不像。该功能的告示标志是接受部分功能的方法,JsonMatchers上的所有方法都接受Any