Middle+
Koks, jūsų manymu, yra svarbiausias modelis testų automatizavimui, išskyrus Page Object modelį?
sobes.tech AI
Atsakymas iš AI
Builder pavyzdys.
Jis leidžia kurti sudėtingus testinius duomenis arba objektus žingsnis po žingsnio, atskiriant konstravimo procesą nuo jo pateikimo.
Privalumai:
- Lankstumas: Palengvina įvairių testinių duomenų kombinacijų kūrimą.
- Skaitomumas: Objekto kūrimo kodas tampa aiškesnis.
- Palaikymas: Lengviau keisti objektų kūrimo procesą be kliento įsikišimo.
- Daugkartinis_naudojimas: Leidžia kurti testinių duomenų rinkinius skirtingiems scenarijams.
Pavyzdys, kaip naudoti testavimui:
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; // numatytoji reikšmė
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);
}
}
// Ggetteriai
public String getUsername() { return username; }
public String getPassword() { return password; }
public String getEmail() { return email; }
public boolean isActive() { return isActive; }
}
// Naudojimas testuose
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();
// Objekto naudojimas testavimo žingsniuose
}
}
Automatizuotame testavime Builder dažnai naudojamas kartu su Page Object, kuriant testinius duomenis, reikalingus sąveikai su puslapio elementais.