2011-12-21 16 views
3

ハムクレストマッチャーのいずれかと次の文字列を一致させる方法はありますか?文字列のHamcrestマッチャー。文字列にいくつかのランダムな値が含まれています

"{\"messageType\":\"identify\",\"_id\":\"7de9a446-2ced-4bda-af35-81e95ad2dc32\",\"address\":\"192.168.0.0\",\"port\":7070}" 

この文字列はメソッドに渡されます。私はそれにマッチするためにJMockの期待を使用します。

問題:「72e3a446-2fed-4bda-ac35-34e95ab3dc32」部分は、ランダムに生成されたUUIDで、テストされたメソッドの内部で生成されます。ソリューション

:それは期待文字列が "{\"messageType\":\"identify\",\"_id\":\"そこに任意の文字列がその後で、 ",\"address\":\"192.168.0.0\",\"port\":7070}"

EDITで終わるで始まることと一致しなければなりません

new StringCompositeMatcher("{\"messageType\":\"identify\",\"_id\":\"", with(any(String.class)), "\"address\":\"192.168.0.0\",\"port\":7070}") 

のようなものと一致しますHamcrest文字列マッチャはあります
+0

https://github.com/jayway/JsonPath/tree/master/json-path-assertをマッチャー 'ALLOF(のstartsWith( "... ")、endsWith(" ..."))'。 –

答えて

3

おそらく、それを行う最もエレガントな方法は、正規表現を組み込むことですが、regexpを組み込むことはありません。しかし、you can easily write your own

startsWith()endsWith()allOf()と組み合わせることもできます。

3

JSONのようです。なぜJSONパーサを使用しないのですか?

-1

あなたはこのhamcrestを使用することができますが、より良い書き込まれる

+0

あなたが提供したリンクが将来破損する場合はどうなりますか?サイトの回答をここに記録することは常に良い考えです –

関連する問題