получить файл Excel из ответа покоя, используя wslite - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь протестировать функцию, которая отправляет файл Excel (.xlsx) через ответ REST. Я уже пробовал использовать конечную точку с помощью почтальона, и я знаю, что Excel загружен (так работает), но я все равно не могу заставить тест работать.

Это то, что я пробовал до сих пор (используя wslite для чтения ответа в тесте):

   @Subject(ExcelController)
    class ExcelFuncSpec {
        RESTClient http

    void setup() {
        http = new RESTClient("http://localhost:33089")
    }

   void "It generates an excel"() {
        given:
        int randomId = 23
        when:
        def res = http.get([
                path   : "/$randomId/excel",
        ])

        then: "The response is OK"
        res?.statusCode == OK.value()
        res.response.data //this kinda works because it returns an array of bytes
    }

    }

Как вы можете видеть в моем комментарии:

res.response.data //this kinda works because it returns an array of bytes

Я могу получить массив байтов, но мне нужен java Файл или InputStream, который я могу использовать для чтения содержимого файла Excel.

¿Как я могу получить ответ как InputStream используя wslite?

1 Ответ

1 голос
/ 16 марта 2020

Я могу получить массив байтов, но мне нужен java Файл или InputStream, который я могу использовать для чтения содержимого файла Excel.

Если res.response.data переводится в массив байтов, и вы хотите InputStream, связанный с этими байтами, тогда new ByteArrayInputStream(res.response.data) создаст InputStream, из которого вы можете прочитать эти байты.

...