Что такое сериализация?

«Что такое сериализация?» — вопрос из категории ООП, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Сериализация — это процесс преобразования объекта или структуры данных в формат, который можно сохранить (например, в файл) или передать по сети (например, JSON, XML, бинарный формат). Обратный процесс называется десериализацией.

Зачем это нужно в тестировании:

  • Передача данных между сервисами: Для тестирования API часто необходимо сериализовать объекты запроса в JSON/XML и десериализовать ответы для проверки.
  • Сохранение и воспроизведение состояния: Можно сохранить состояние сложного объекта (например, фикстуры) для использования в последующих тестах.
  • Сравнение данных: Сериализованные объекты (например, в строку JSON) удобно сравнивать в тестах на равенство.

Пример на Java (используя Jackson для JSON):

import com.fasterxml.jackson.databind.ObjectMapper;

public class SerializationExample {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();

        // Объект для сериализации
        User user = new User("Alice", 30);

        // Сериализация в JSON строку
        String jsonString = mapper.writeValueAsString(user);
        System.out.println(jsonString); // {"name":"Alice","age":30}

        // Десериализация обратно в объект
        User deserializedUser = mapper.readValue(jsonString, User.class);
        System.out.println(deserializedUser.getName()); // Alice
    }
}

class User {
    private String name;
    private int age;
    // Конструктор, геттеры, сеттеры...
}