Sobes.tech
Middle+

Sayfa Nesnesi deseni dışında, test otomasyonunda kullanılması en önemli olan desen sizce hangisidir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Builder Deseni.

Karmaşık test verileri veya nesneleri adım adım oluşturmanıza olanak tanır ve inşa sürecini temsilinden ayırır.

Avantajlar:

  • Esneklik: Farklı test veri kombinasyonlarının oluşturulmasını kolaylaştırır.
  • Okunabilirlik: Nesne oluşturma kodu daha anlaşılır hale gelir.
  • Destek: Nesne oluşturma sürecini değiştirmek daha kolaydır ve müşteriyi etkilemez.
  • Yeniden Kullanım: Farklı senaryolar için test veri setleri oluşturmayı sağlar.

Test kullanıcıları oluşturmak için kullanım örneği:

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; // Varsayılan değer

        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);
        }
    }

    // Getterlar
    public String getUsername() { return username; }
    public String getPassword() { return password; }
    public String getEmail() { return email; }
    public boolean isActive() { return isActive; }
}

// Testte kullanım
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();

        // Test adımlarında kullanıcı nesnelerinin kullanımı
    }
}

Test otomasyonunda, Builder genellikle Page Object ile birlikte kullanılır ve sayfa öğeleriyle etkileşim için gerekli test verilerini oluşturur.