mockMvc, получить содержимое из файла json в SpringBoot - PullRequest
0 голосов
/ 09 октября 2019

У меня есть приложение springBoot 2.1.9.RELEASE, которое использует MockMvc.

Я хотел бы знать, есть ли способ получить содержимое тела из файла

mockMvc.perform(post("/hostel")
    .content(withBodyFile("hostel.json"))

как мы можем сделать с

com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder (withBodyFile)

Ответы [ 2 ]

1 голос
/ 09 октября 2019

Вы можете использовать что-то вроде:

@SneakyThrows
private byte[] fromFile(String path) {
    return new ClassPathResource(path).getInputStream().readAllBytes();
}

А затем:

.content(fromFile("payload.json")))

Помните, что файл payload.json должен находиться в папке src/test/resources.

0 голосов
/ 09 октября 2019

MockMvc content может быть только byte[]. Таким образом, вы можете сделать так, чтобы ваш код читал тело из файла типа

public byte[] bytesFromPath(final String path) throws IOException {

    return Files.readAllBytes(Paths.get(path));
}
.content(bytesFromPath(new ClassPathResource("file-name").getPath()));
...