Sobes.tech
Middle+

Кадом намуна, ба назари шумо, барои истифода дар автоматизатсияи тестӣ, ба ғайр аз намунаи Page Object, муҳимтарин аст?

sobes.tech AI

Ҷавоб аз AI

Образец Builder.

Он позволяет создавать сложные тестовые данные или объекты пошагово, отделяя процесс конструирования от его представления.

Преимущества:

  • Гибкость: Облегчает создание различных комбинаций тестовых данных.
  • Читаемость: Код создания объектов становится более понятным.
  • Поддержка: Легче изменять процесс создания объектов без затрагивания клиента.
  • Многократное_использование: Позволяет создавать наборы тестовых данных для разных сценариев.

Пример использования для создания тестового пользователя:

public class User {
    private String username;
    private String password;
    private String email;
    private boolean isActive;

    private User(Builder builder) {
        this.username = builder.username;
        this.password = builder.password;
        this.email = builder.email;
        this.isActive = builder.isActive;
    }

    public static class Builder {
        private String username;
        private String password;
        private String email;
        private boolean isActive = true; // Значение по умолчанию

        public Builder(String username, String password) {
            this.username = username;
            this.password = password;
        }

        public Builder withEmail(String email) {
            this.email = email;
            return this;
        }

        public Builder withStatus(boolean isActive) {
            this.isActive = isActive;
            return this;
        }

        public User build() {
            return new User(this);
        }
    }

    // Геттеры
    public String getUsername() { return username; }
    public String getPassword() { return password; }
    public String getEmail() { return email; }
    public boolean isActive() { return isActive; }
}

// Использование в тесте
public class UserCreationTest {
    public void testUserCreation() {
        User activeUser = new User.Builder("test_user", "password123")
                .withEmail("test@example.com")
                .build();

        User inactiveUser = new User.Builder("inactive_user", "pass456")
                .withStatus(false)
                .build();

        // Использование объектов user в тестовых шагах
    }
}

В автоматизации тестирования Builder часто применяется в сочетании с Page Object для создания тестовых данных, необходимых для взаимодействия с элементами страницы.