Junior
Jak otestovat pole pro zadání e-mailu?
sobes.tech AI
Odpověď od AI
Testování pole pro zadání e-mailové adresy zahrnuje kontroly na úrovni frontendu i backendu a také testování uživatelského rozhraní.
Kontroly (Client-Side):
- Validace formátu:
- Správné adresy (např.
test@example.com,test.name@sub.example.co.uk). - Nesprávné adresy (chybějící
@, doména, nesprávné speciální znaky, mezery).
- Správné adresy (např.
- Hranice vstupu:
- Minimální a maximální délka.
- Prázdné pole.
- Typ dat: Ujistěte se, že pole přijímá pouze znaky povolené v emailu.
- Chybové zprávy: Správnost a informativnost zpráv při nesprávném zadání.
- Interakce:
- Zaostření pole (focus state).
- Stav psaní (typing state).
- Stav chyby (error state).
Kontroly (Server-Side):
- Validace formátu: Opětovná kontrola formátu emailu k zabránění obejití validace na frontendu.
- Unikátnost: Pokud má být email unikátní (např. při registraci), kontrola duplicit v databázi.
- Obchodní logika: Kontrola souladu s obchodními pravidly.
- Zpracování speciálních znaků: Správné zpracování znaků, které mohou způsobit problémy (např. SQL injection).
- Kontrola existence domény: Volitelná kontrola existence doménové části emailu.
Příklady testů:
- Pozitivní:
- Zadání platné emailové adresy.
- Zadání emailu s dlouhou doménou/domenovou zónou.
- Zadání emailu s subdoménami.
- Negativní:
- Prázdné pole.
- Zadání textu bez znaku
@. - Zadání textu bez části domény za
@. - Zadání textu s mezerami.
- Zadání textu s nepovolenými znaky.
- Zadání emailu přesahujícího maximální délku.
- Zadání již registrovaného emailu.
- Zadání emailu s nesprávným formátem speciálních znaků.
Automatizace:
Pro automatizaci těchto testů lze použít různé rámce a nástroje:
- UI automatizace: Selenium, Cypress, Playwright pro testování frontendu a interakce s polem.
# Příklad pseudokódu pro Selenium v Pythonu
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("your_app_url")
email_field = driver.find_element_by_id("emailInput") # Najdeme pole podle ID
email_field.send_keys("invalid-email") # Zadáme nesprávný email
error_message = driver.find_element_by_id("errorMessage") # Najdeme prvek s chybovou zprávou
assert "Invalid email format" in error_message.text # Zkontrolujeme text
driver.quit()
- API automatizace: RestAssured, Postman, Requests (Python) pro testování backendové validace odesláním požadavků s různými daty.
// Příklad pseudokódu pro Postman
{
"email": "invalid-email"
}
// Příklad testu v Postman Tests
pm.test("Status code is 400", function () {
pm.response.to.have.status(400); // Kontrola, že server vrátil chybu 400
});
pm.test("Error message is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("Invalid email format"); // Kontrola textu chyby
});
Další aspekty:
- Testování s použitím reálných dat (pokud je testovací databáze k dispozici).
- Testování na různých zařízeních a prohlížečích.
- Testování výkonu pole při zadávání velkého objemu dat.