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

iwe*_*ein 2 scala specs2

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

someJson must */("key")/("(one|other)".r)
Run Code Online (Sandbox Code Playgroud)

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

鉴于这个凌乱的例子:

val someJson = """{"blob": "multiline string
                  |with various line endings"}"""
Run Code Online (Sandbox Code Playgroud)

这个匹配器

someJson must */("blob")/contains("various")
Run Code Online (Sandbox Code Playgroud)

看起来比清洁得多

someJson must */("blob")/"[^v]various.*".r
Run Code Online (Sandbox Code Playgroud)

哪个不适合使用,但在这种情况下可能有用.

Eri*_*ric 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)))
Run Code Online (Sandbox Code Playgroud)

  • 改变现实,让你的答案被接受,呃.不错,看起来很棒! (4认同)