Sobes.tech
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).
  • 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.