Есть ли способ сопоставить следующую строку с любым из шаблонов hamcrest.Соединитель Hamcrest для String, где String содержит некоторые случайные значения
"{\"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}"
EDIT: Решение
with(allOf(new StringStartsWith("{\"messageType\":\"identify\",\"_id\":\""), new StringEndsWith("\",\"address\":\"192.168.0.0\",\"port\":7070}")))
Это было бы лучше, написанный 'allOf (StartsWith ("... "), EndsWith (" ..."))'. –