有沒有辦法將以下字符串與任何hamcrest匹配器進行匹配。Hamcrest匹配器的字符串,其中字符串包含一些隨機值
"{\"messageType\":\"identify\",\"_id\":\"7de9a446-2ced-4bda-af35-81e95ad2dc32\",\"address\":\"192.168.0.0\",\"port\":7070}"
該字符串被傳遞給一個方法。我使用JMock期望來匹配它。
問題:「72e3a446-2fed-4bda-ac35-34e95ab3dc32」部分是隨機生成的UUID,它是在測試方法內部生成的。是否有一個Hamcrest字符串匹配將匹配類似
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}")))
這將是更好的寫作'allOf(startsWith( 「... 」),的endsWith(「 ...」))'。 – 2011-12-24 05:13:33