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

    // Getters
    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();
        // Χρήση αντικειμένων χρήστη στα βήματα δοκιμής
    }
}

Στην αυτοματοποίηση δοκιμών, το Builder συχνά χρησιμοποιείται σε συνδυασμό με το Page Object για τη δημιουργία δεδομένων δοκιμής που απαιτούνται για την αλληλεπίδραση με τα στοιχεία της σελίδας.