Middle+
Sizning fikringizcha, testlarni avtomatlashtirishda, Page Object shablonidan tashqari, eng muhim bo'lgan shablon qaysi?
sobes.tech AI
AIdan javob
Builder naqshisi.
Ushbu naqsh yordamida murakkab test ma'lumotlari yoki ob'ektlarni bosqichma-bosqich yaratish mumkin, qurilish jarayoni va uning taqdimoti ajratiladi.
Afzalliklari:
- Moslashuvchanlik: Turli xil test ma'lumotlari kombinatsiyalarini yaratishni osonlashtiradi.
- O'qilishi: Ob'ektlarni yaratish kodi yanada tushunarli bo'ladi.
- Qo'llab-quvvatlash: Ob'ektlarni yaratish jarayonini o'zgartirish osonroq, mijozga ta'sir qilmaydi.
- Qayta ishlatish: Turli ssenariylar uchun test ma'lumotlar to'plamini yaratish imkonini beradi.
Test uchun foydalanuvchi yaratish misoli:
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; // Standart qiymat
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; }
}
// Testda foydalanish
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 bosqichlarida user obyektlaridan foydalanish
}
}
Test avtomatlashtirishda Builder ko'pincha Page Object bilan birga ishlatiladi va sahifa elementlari bilan o'zaro ta'sir qilish uchun zarur bo'lgan test ma'lumotlarini yaratadi.