有没有办法将以下字符串与任何 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}")))