2

specs2 テスト内で、JSON マッチャーを使用して json 文字列を検証しています。正規表現を使用して値を一致させることが可能であることを私は知っています

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

きちんとした方法で他の文字列マッチャー (contains など) を使用することは可能ですか?

この厄介な例を考えると:

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

このマッチャー

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

よりもはるかにきれいに見えます

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

これは適切な表現ではありませんが、この場合はうまくいく可能性があります。

4

2 に答える 2

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)))
于 2013-02-15T11:48:46.013 に答える
2

それのように見えません。その機能の兆候は、部分的な関数を受け入れるメソッドであり、JsonMatchers のすべてのメソッドが を受け入れAnyます。

于 2013-02-12T17:58:38.480 に答える