4

次の文字列をハムクレストマッチャーのいずれかと一致させる方法はありますか?

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

この文字列はメソッドに渡されます。私はそれに合わせてJMockの期待を使用します。

問題:「72e3a446-2fed-4bda-ac35-34e95ab3dc32」の部分はランダムに生成されたUUIDであり、テストされたメソッド内で生成されます。次のようなものに一致するハムクレストストリングマッチャーはありますか

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

"{\"messageType\":\"identify\",\"_id\":\"期待される文字列が、その後に任意の文字列があることで始まり、で終わることと一致する必要があります。",\"address\":\"192.168.0.0\",\"port\":7070}"

編集:解決策

with(allOf(new StringStartsWith("{\"messageType\":\"identify\",\"_id\":\""), new StringEndsWith("\",\"address\":\"192.168.0.0\",\"port\":7070}")))
4

3 に答える 3

5

おそらく最もエレガントな方法は正規表現を使用することですが、組み込みのマッチャーはありません。ただし、独自の を簡単に作成できます

startsWith()または、とendsWith()を組み合わせることができますallOf()

于 2011-12-21T10:28:56.213 に答える
3

JSONのように見えます。JSON パーサーを使用しないのはなぜですか?

于 2011-12-24T01:27:55.527 に答える