/ / за допомогою файлу Json в Rest-sure for payload - java, json, rest, junit, rest-assured

використовуючи файл Json в Rest-secure for payload - java, json, rest, junit, rest-secure

У мене є величезний файл JSON для POST як корисного навантаження для виклику api для відпочинку для цілей тестування. Я спробував щось подібне:

    public void RestTest() throws Exception {
File file = new File("/Users/bmishra/Code_Center/stash/experiments/src/main/resources/Search.json");
String content = null;

given().body(file).with().contentType("application/json").then().expect().
statusCode(200).
body(equalTo("true")).when().post("http://devsearch");


}

і отримати помилку як:

java.lang.UnsupportedOperationException: Internal error: Can"t encode /Users/bmishra/Code_Center/stash/experiments/src/main/resources/Search.json to JSON.

Я можу працювати, читаючи файл і передаючи тіло як рядок, і це працює, але я бачу, я можу безпосередньо передавати об'єкт файлу і це не працює.

Після дослідження досить здається, що він не працює. Я відкрив питання з упевненим у спокої. https://github.com/jayway/rest-assured/issues/674

Відповіді:

2 для відповіді № 1

Я використовую загальний метод для читання з json і надсилаю його як рядок, тобто:

public String generateStringFromResource(String path) throws IOException {

return new String(Files.readAllBytes(Paths.get(path)));

}

Так у вашому прикладі:

@Test
public void post() throws IOException {

String jsonBody = generateStringFromResource("/Users/bmishra/Code_Center/stash/experiments/src/main/resources/Search.json")

given().
contentType("application/json").
body(jsonBody).
when().
post("http://dev/search").
then().
statusCode(200).
body(containsString("true"));
}

2 для відповіді № 2

Після розміщення питання з відпочиваючою командою. У мене є виправлення. Я перевірив виправлення, і проблема вирішена.

Повідомлення від запевнених:

Це має бути виправлено зараз, тому я розгорнув новий знімок, який повинен вирішити цю проблему. Будь ласка, спробуйте версію 2.9.1-SNAPSHOT після додавання наступного сховища Maven:

<repositories>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots />
</repository>
</repositories>

Для отримання додаткової інформації : https://github.com/jayway/rest-assured/issues/674#issuecomment-210455811