Я пытаюсь написать автоматизированный тест приложения, который в основном переводит пользовательский формат сообщения в XML-сообщение и отправляет его на другой конец. У меня хороший набор пар сообщений ввода/вывода, поэтому все, что мне нужно сделать, это отправить входные сообщения и прослушать сообщение XML, чтобы выйти на другой конец.
Когда приходит время сравнить фактический вывод с ожидаемым выходом, я сталкиваюсь с некоторыми проблемами. Моя первая мысль заключалась в том, чтобы просто выполнять сопоставления строк в ожидаемых и актуальных сообщениях. Это не очень хорошо работает, потому что данные примера, которые у нас есть, не всегда форматируются последовательно и часто используются разные псевдонимы, используемые для пространства имен XML (а иногда и пространства имен вообще не используются).
Я знаю, что могу разобрать обе строки, а затем пройти через каждый элемент и сравнить их самостоятельно, и это было бы непросто сделать, но я чувствую, что есть лучший способ или библиотека, которую я мог бы использовать.
Итак, сварившись, вопрос:
Учитывая две строки Java, которые содержат корректный XML, как бы вы определили, являются ли они семантически эквивалентными? Бонусные баллы, если у вас есть способ определить, каковы различия.