Я использую REST Assured для проверки загрузки файла XML в базу данных.Внутренний код хорошо написан и ошибок нет.Я создаю запрос, используя REST Assured следующим образом (метод .body () из класса RequestSpecification REST Assured, который расширяет класс RequestSender).
response = TestSuite.buildRequest()
.contentType("text/xml")
.header("header1")
.accept("application/json")
.body(uploadPayload)
.post(uploadPath)
uploadPayload представляет собой содержимое файла XML с XMLтег объявления.Вот пример содержимого файла:
<?xml version="1.0" encoding="UTF-8" ?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
</CATALOG>
Это содержимое читается из файла в каталоге проекта, это метод, который я использую для чтения содержимого этого файла, и он читает весь файл со всем форматированием.
public static String getFileContent(File file) {
if (file == null) return
String s = ""
try {
FileReader reader = new FileReader(file)
BufferedReader br = new BufferedReader(reader)
String line
while ((line = br.readLine()) != null) {
s = s + line + "\n"
}
return s
} catch (IOException e) {
throw new IOException("Error getting file content from file.", e)
}
}
Я добавляю полученное содержимое файла в качестве тела запроса (переменная uploadPath вышеупомянутого запроса) и отправляю запрос.Но когда тест выполняется, тело отображается в результатах без тега объявления XML.Но когда я печатаю содержимое, тег появляется.Вот как тело отображается в результатах теста (без тега объявления XML).
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
</CATALOG>
Мне нужно получить все тело (включая тег объявления) для запроса.Но по какой-то причине он отбрасывается при получении его в теле запроса.Может ли кто-нибудь рассказать, почему и как преодолеть эту проблему?Ваше мнение очень ценится.Спасибо.