У меня есть интеграционный тест, чтобы протестировать две остальные службы с приложением типа контента / xml. Первая конечная точка вызывается почтовым запросом, чтобы создать человека и вернуть идентификатор редакции. Этот идентификатор генерируется с помощью последовательности sql в базе данных H2 SQL, поэтому этот идентификатор может отличаться. Теперь я хочу удалить запись и вызвать вторую конечную точку. Тест должен проверить вторую конечную точку. Проблема в том, что мне нужно значение идентификатора ревизии из первого вызова.
Вот мой тест:
String revisionID;
mvc.perform(post("url/create")
.contentType(MediaType.APPLICATION_XML)
.content(readXML("person")).accept("application/xml"))
.andExpect(status().isCreated())
// here I can do some tests, but I need to store the id value
// I have no idea to store the node in revisionId
.andExpect(xpath("/context/revisionId/text()").exist());
mvc.perform(delete("url/remove/revision/" + revisionId) // I need to know the id here
.contentType(MediaType.APPLICATION_XML)
.andExpect(status().isOk());
Тестирование значений или количества узлов таким способом работает отлично, но Я не мог найти простое решение для извлечения / хранения значения с помощью xpath. Мой план B состоит в том, чтобы использовать java. xml .Xpath или JAXB, но я не могу поверить, что нет никакого весеннего пути с каркасом Mock Mvc.
Я не могу использовать json, потому что это старая система, которая использует эти точки отдыха.
Заранее спасибо