Найти в Дзене

Файлы в Intellij IDEA JAVA. Часть 1.

В этой статье я расскажу о работе с файлами. На первый взгляд, это простая тема, но на самом деле всё не так однозначно. Представим, что файл используется в тесте. Уже на этом этапе потребуются знания по чтению. А если нам нужно использовать содержимое файла, но оно слишком большое, чтобы поместить его в переменную? Или если нам нужно перед тестом изменить значения в файле, а после — вернуть их обратно? Возникает множество нюансов, но давайте разбираться по порядку. Давайте для теста представим, что нам нужно отправлять запрос на сервер через REST API. В качестве какого нибудь аргумента будем использовать наш файл. Для примера мы будет использовать - https://restful-booker.herokuapp.com/ Для начала создадим файл в нашем проекте с расширением txt Вы можете заметить в JAVA можно создавать файлы с очень большим списком расширений Напишем в нём любой текст, чтобы с ним можно было работать Без труда сможем написать запрос на создание записи, из документации оставленной выше. Это будет Post
Оглавление

В этой статье я расскажу о работе с файлами. На первый взгляд, это простая тема, но на самом деле всё не так однозначно.

Представим, что файл используется в тесте. Уже на этом этапе потребуются знания по чтению. А если нам нужно использовать содержимое файла, но оно слишком большое, чтобы поместить его в переменную? Или если нам нужно перед тестом изменить значения в файле, а после — вернуть их обратно? Возникает множество нюансов, но давайте разбираться по порядку.

Давайте для теста представим, что нам нужно отправлять запрос на сервер через REST API. В качестве какого нибудь аргумента будем использовать наш файл.

Для примера мы будет использовать - https://restful-booker.herokuapp.com/

  • ♻ Создание файла
  • ♻ Подстановка значений из Файла с длинным текстом
  • ♻ Подстановка значений в Файл перед тестом

Создание файла

Для начала создадим файл в нашем проекте с расширением txt

-2

Вы можете заметить в JAVA можно создавать файлы с очень большим списком расширений

-3

Напишем в нём любой текст, чтобы с ним можно было работать

-4

Без труда сможем написать запрос на создание записи, из документации оставленной выше. Это будет Post запрос и выглядит он следующим образом

-5

Давайте сразу проверим, что запрос отрабатывает и сервер нам отвечает. Как видим тест отрабатывает и выводит созданную запись.

-6

Подстановка значений из Файла с длинным текстом

Давайте начнём с малого, мы умеем подставлять переменные. выглядит это следующим образом

-7

Текст небольшой и он легко помещается в String, а если тест слишком большой? На столько что не поместится из за количества символов? Выйдет ошибка, для Java это слишком длинная строка

-8

Для этого мы можем поместить данный текст в файл и использовать перевод текста в байты и определить их в String. Звучит сложно, но на деле это одна строка

String text1 = new String(Files.readAllBytes(Paths.get("File/test.txt")));

Paths.get("File/test.txt") - указываем полный путь из начал проекта

Да, наше API не позволит записать такое большое Имя, ведь мы лишь придумываем ситуацию, но нам важно умение отправлять большие объёмы фалов.

-9

Подстановка значений в Файл перед тестом

Вернём наше значение в файле

-10

В процессе разработки программного обеспечения часто возникает необходимость использовать файлы, содержимое которых является шаблоном для различных запросов. Однако, чтобы применить эти шаблоны, необходимо предварительно заменить значения параметров на конкретные данные.

Проблема заключается в том, что если попытаться изменить содержимое файла во время выполнения теста, то эти изменения будут применены только после завершения теста. Это аналогично ситуации, когда вы пытаетесь изменить код во время выполнения программы — изменения не вступят в силу до следующей компиляции.

Разберём несколько примеров.

Подстановка значений без записи изменений в Файл

Используем простой метод replace. Он легко может заменять нужные значения, но он их не записывает в файл. То есть берётся содержимое файла - заносится в переменную - меняется - используется. Файл какой был, такой и остался

-11
-12

Это можно использовать в своих целях, в каких то моментах это действительно будет удобно. Но сложнее будет, если нам нужно будет заменить множество значений. Для этого нам нужно будет менять значения из предыдущего измененного текста!

-13

И только в таком случае у нас будет заменено несколько значений. Возможно для кого то это будет удобно. Главное тут не запутаться!

➕ Плюсы:

  • Файл не изменяется, можно переиспользовать

➖ Минусы:

  • Если много значений нужно поменять, нужно использовать текст как матрёшку, чтоб одно вытекало из другого

В следующей статье продолжим разбирать использование Файлов.

Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!

Обучение тестированию