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.comfirstname.lastname@example.comemail@subdomain.example.comfirstname+lastname@example.comemail@example.co.ukemail@example.museumemail@example.nameemail@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.