Sobes.tech
Junior

Kā pareizi pārbaudīt e-pasta adreses ievades lauku?

sobes.tech AI

Atbilde no AI

E-pasta lauka testēšana ietver funkcionalitātes, validācijas, lietotāja ērtības un drošības pārbaudi:

Funkcionālā testēšana:

  • Pareizu adresu ievade:
    • 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 (starptautisko domēnu vārdu atbalsts - IDN)
  • Nepareizu adresu ievade:
    • Trūkst @: testexample.com
    • Vairāki @: test@@example.com
    • Nepareizs formāts: test@example
    • Lietotāja vārda trūkums: @example.com
    • Īpaši simboli lietotāja vārdā: te!st@example.com, te#st@example.com
    • Īpaši simboli domēnā: test@exa!mple.com
    • Garš adrese (ierobežojumu pārbaude): a_very_long_email_address_that_exceeds_typical_limits@example.com
    • Adrese ar tukšumiem: test @example.com
    • Sintakses kļūda adresē: test@.com, test.@example.com
    • Adrese ar IP adresi (ja nepalaikots): test@[192.168.1.1]
    • Adrese ar kirilicu (ja IDN nepalaikots): тест@пример.рф
  • Tukšs lauks: formas nosūtīšana ar tukšu lauku.

Validācija:

  • Pārbaude, vai ievadītā e-pasta sintakse atbilst (izmantojot regulāras izteiksmes):
  • Ziņojumu parādīšana lietotājam, ja ievadīti nepareizi dati:
  • Precizitātes un saprotamības pārbaude ziņojumos:
  • Ja ir validācijas kļūdas, forma nedrīkst tikt nosūtīta:

Lietojamība & UI/UX:

  • Fokusa uz lauka iestatīšana ielādes laikā:
  • Piemēra teksts (placeholder): (piemēram, user@example.com)
  • Pārlūkprogrammas automātiskās aizpildīšanas atbalsts:
  • <label> zīmes klātbūtne:
  • Lietotājs nevar ievadīt nepieņemamus simbolus:
  • Ja ir ievades maska, to pārbaudīt:

Drošība:

  • XSS ievainojamības pārbaude: skriptu, HTML tagu ievade (<script>alert('XSS')</script>):
  • SQL/NoSQL injekciju pārbaude: specifisku simbolu ievade:
  • Ātruma ierobežojumi (ja forma nosūta e-pastu vai veic resursu intensīvas darbības): IP vai lietotāja līmenī:

Automatizācija:

  • E-pasta validācijas funkciju vienību testu rakstīšana:
  • Integrācijas testu rakstīšana, pārbaudot lauka darbību formas kontekstā:
  • Pilnu scenāriju E2E testu rakstīšana formas izmantošanas pārbaudei:

Piemēra kods e-pasta validācijas vienību testiem:

// Pieņemot, ka mums ir funkcija validateEmail
function validateEmail(email) {
  const re = /\S+@\S+\.\S+/; // Vienkāršs regulārs izteiciens
  return re.test(email);
}

// Vienību testu piemērs ar Jest
describe('validateEmail', () => {
  test('jāatgriež true derīgai e-pasta adresei', () => {
    expect(validateEmail('test@example.com')).toBe(true);
    expect(validateEmail('firstname.lastname@example.com')).toBe(true);
  });

  test('jāatgriež false nederīgai e-pasta adresei', () => {
    expect(validateEmail('testexample.com')).toBe(false);
    expect(validateEmail('test@example')).toBe(false);
    expect(validateEmail('@example.com')).toBe(false);
  });

  test('jāatgriež false tukšam tekstam', () => {
    expect(validateEmail('')).toBe(false);
  });
});

E2E testa piemērs ar Cypress:

// cypress/integration/email_field.spec.js
describe('E-pasta ievades lauks', () => {
  it('pareizi validē un rāda kļūdas ziņojumu nederīgas ievades gadījumā', () => {
    cy.visit('/your-form-page'); // Lapas URL
    cy.get('#email-input').type('nederīgs-e-pasts'); // Nederīgs e-pasts
    cy.get('button[type="submit"]').click(); // Nosūtīšanas poga
    cy.get('.error-message').should('būt redzams').and('iekļaut', 'Nepareizs formāts'); // Kļūdas ziņojuma pārbaude
  });

  it('atļauj nosūtīt formu ar derīgu e-pasta adresi', () => {
    cy.visit('/your-form-page');
    cy.get('#email-input').type('derīgs@epasts.lv');
    cy.get('button[type="submit"]').click();
    // Papildu pārbaudes: piemēram, novirzīšana, veiksmīgas nosūtīšanas ziņojums
    cy.url().should('iekļaut', '/panākums'); // URL pārbaude
  });
});

Testu gadījumu tabula:

ID Lietotāja darbība Sagaidāmais rezultāts
TC_01 Ievadīt test@example.com Lauks tiek uzskatīts par derīgu. Forma tiek nosūtīta (ja visi lauki aizpildīti).
TC_02 Ievadīt nederīgs-e-pasts Lauks tiek uzskatīts par nederīgu. Parādās kļūdas ziņojums.
TC_03 Atstāt lauku tukšu un mēģināt nosūtīt formu Lauks tiek uzskatīts par nederīgu (ja tas ir obligāts). Parādās kļūdas ziņojums.
TC_04 Ievadīt test@example.co.uk Lauks tiek uzskatīts par derīgu.
TC_05 Ievadīt <script>alert('XSS')</script> Skripts nedrīkst tikt izpildīts. Lauks jāsanitē vai jāvalidē.

Jāņem vērā projekta specifiskās prasības (piem., noteiktu domēnu atbalsts), testēšana dažādās ierīcēs un pārlūkprogrammās.