Sobes.tech
Junior

Kuidas õigesti testida e-posti aadressi sisestusvälja?

sobes.tech AI

Vastus AI-lt

E-posti välja testimine hõlmab funktsionaalsuse, valideerimise, kasutusmugavuse ja turvalisuse kontrolli:

Funktsionaalne testimine:

  • Kehtavate aadresside sisestamine:
    • test@example.com
    • firstname.lastname@example.com
    • email@subdomain.example.com
    • firstname+lastname@example.com
    • email@example.co.uk
    • email@example.museum
    • email@example.name
    • email@example.demo (rahvusvaheliste domeeninimede tugi - IDN)
  • Kehtetute aadresside sisestamine:
    • @ puudumine: testexample.com
    • Mitme @: test@@example.com
    • Vigane formaat: test@example
    • Kasutajanime puudumine: @example.com
    • Erisümbolid kasutajanimes: te!st@example.com, te#st@example.com
    • Erisümbolid domeenis: test@exa!mple.com
    • Pikk aadress (limiitide kontroll): a_very_long_email_address_that_exceeds_typical_limits@example.com
    • Aadress tühikutega: test @example.com
    • Süntaksiviga aadressis: test@.com, test.@example.com
    • Aadress IP-aadressiga (kui ei toetata): test@[192.168.1.1]
    • Aadress kirillitsa tähega (kui IDN ei toetata): тест@пример.рф
  • Tühi väli: vormi saatmisel tühja väliga.

Valideerimine:

  • Kontrollida, kas sisestatud e-posti aadressi süntaks vastab (regulaaravaldistega):
  • Kasutajale kuvatakse veateated vigaste andmete sisestamisel:
  • Veateadete täpsuse ja arusaadavuse kontroll:
  • Kui valideerimisel on vigu, ei tohi vormi saata:

Kasutatavus & UI/UX:

  • Fookus välja laadimisel:
  • Näidistekst (placeholder): (näiteks, user@example.com)
  • Brauseri automaatne täitmine:
  • <label> märgise olemasolu:
  • Kasutaja ei saa sisestada lubamatuid märke:
  • Kui on sisestusmask, kontrollida selle tööd:

Turvalisus:

  • XSS-haavatavuse kontroll: skriptide, HTML-tägide sisestamine (<script>alert('XSS')</script>):
  • SQL/NoSQL süstimise kontroll: spetsiifiliste märkide sisestamine:
  • Kiiruse piirangud (kui vorm saadab e-kirja või teeb ressursimahukaid tegevusi): IP või kasutaja tasemel:

Automatiseerimine:

  • E-posti valideerimise funktsioonide üksustestide kirjutamine:
  • Integreerimistestide kirjutamine, kontrollimaks välja tööd vormi kontekstis:
  • Täielike stsenaariumide E2E testide kirjutamine:

Näidiskood e-posti valideerimise üksustestide jaoks:

// Oletame, et meil on funktsioon validateEmail
function validateEmail(email) {
  const re = /\S+@\S+\.\S+/; // Lihtne regulaaravaldis
  return re.test(email);
}

// Jest kasutamise näide
describe('validateEmail', () => {
  test('peab tagastama true kehtiva e-posti jaoks', () => {
    expect(validateEmail('test@example.com')).toBe(true);
    expect(validateEmail('firstname.lastname@example.com')).toBe(true);
  });

  test('peab tagastama false kehtetu e-posti jaoks', () => {
    expect(validateEmail('testexample.com')).toBe(false);
    expect(validateEmail('test@example')).toBe(false);
    expect(validateEmail('@example.com')).toBe(false);
  });

  test('peab tagastama false tühja stringi jaoks', () => {
    expect(validateEmail('')).toBe(false);
  });
});

E2E testi näide Cypressi kasutades:

// cypress/integration/email_field.spec.js
describe('E-posti sisendi väli', () => {
  it('korrektselt valideerib ja näitab viga kehtetu sisendi korral', () => {
    cy.visit('/your-form-page'); // Lehe URL
    cy.get('#email-input').type('kehtetu-e-posti'); // Kehtetu e-posti
    cy.get('button[type="submit"]').click(); // Saatmise nupp
    cy.get('.error-message').should('nähtav').and('sisaldab', 'Kehtetu formaat'); // Vea teate kontroll
  });

  it('lubab vormi saata kehtiva e-posti aadressiga', () => {
    cy.visit('/your-form-page');
    cy.get('#email-input').type('kehtiv@epost.ee');
    cy.get('button[type="submit"]').click();
    // Täiendavad kontrollid: näiteks suunamine, edukas saatmine
    cy.url().should('sisaldab', '/edu'); // URL kontroll
  });
});

Testjuhtumite tabel:

ID Kasutaja tegevus Oodatav tulemus
TC_01 Sisestada test@example.com Väli loetakse kehtivaks. Vorm saadetakse (kui kõik väljad on täidetud).
TC_02 Sisestada kehtetu-e-posti Väli loetakse kehtetuks. Näidatakse veateadet.
TC_03 Jätta väli tühjaks ja proovida vormi saata Väli loetakse kehtetuks (kui see on kohustuslik). Näidatakse veateadet.
TC_04 Sisestada test@example.co.uk Väli loetakse kehtivaks.
TC_05 Sisestada <script>alert('XSS')</script> Skript ei tohi käivituda. Väli peab olema sanitiseeritud või valideeritud.

Arvestada projekti spetsiifilisi nõudeid (näiteks toetatud domeenipiirkonnad), testida erinevatel seadmetel ja brauserites.