Junior
Kaip teisingai išbandyti el. pašto adreso įvedimo lauką?
sobes.tech AI
Atsakymas iš AI
El. pašto lauko testavimas apima funkcionalumo, validacijos, naudotojo patogumo ir saugumo patikrinimus:
Funkcinis testavimas:
- Tinkamų adresų įvedimas:
test@example.comfirstname.lastname@example.comemail@subdomain.example.comfirstname+lastname@example.comemail@example.co.ukemail@example.museumemail@example.nameemail@example.žemė(tarptautinių domenų vardų palaikymas - IDN)
- Netinkamų adresų įvedimas:
- Trūksta
@:testexample.com - Kelios
@:test@@example.com - Netinkamas formato domenas:
test@example - Vartotojo vardo trūkumas:
@example.com - Specialieji simboliai vartotojo varde:
te!st@example.com,te#st@example.com - Specialieji simboliai domene:
test@exa!mple.com - Ilgas adresas (ribojimų patikrinimas):
a_very_long_email_address_that_exceeds_typical_limits@example.com - Adresas su tarpeliais:
test @example.com - Sintaksės klaida adrese:
test@.com,test.@example.com - Adresas su IP adresu (jei nepalaikoma):
test@[192.168.1.1] - Adresas su kirilica (jei IDN nepalaikoma):
тест@пример.рф
- Trūksta
- Tuščias laukas: pateikus formą su tuščiu lauku.
Validacija:
- Tikrinama, ar įvestas el. pašto sintaksė atitinka (naudojant reguliarias išraiškas):
- Rodo klaidų pranešimus naudotojui įvedus netinkamus duomenis:
- Tikslumo ir aiškumo patikrinimas klaidų pranešimuose:
- Jei yra validacijos klaidų, forma neturi būti siunčiama:
Naudojimo patogumas ir UI/UX:
- Fokuso nustatymas lauke įkeliant puslapį:
- Pavyzdinis tekstas (
pavyzdžiui, user@example.com): - Naršyklės automatinio užpildymo palaikymas:
<label>žymės buvimas:- Vartotojas negali įvesti neleistinų simbolių:
- Jei yra įvesties maska, ją patikrinti:
Sauga:
- XSS pažeidžiamumo patikrinimas: skriptų, HTML žymų įvedimas (
<script>alert('XSS')</script>): - SQL/NoSQL injekcijų patikrinimas: specifinių simbolių įvedimas:
- Greičio ribojimas (jei forma siunčia el. paštą ar atlieka resursų intensyvius veiksmus): IP ar naudotojo lygyje:
Automatizavimas:
- El. pašto validacijos funkcijų vienetinių testų rašymas:
- Integracinių testų rašymas, patikrinant lauko darbą formos kontekste:
- Visos formos scenarijų E2E testų rašymas:
Pavyzdinis kodas el. pašto validacijos vienetiniams testams:
// Tarkime, turime funkciją validateEmail
function validateEmail(email) {
const re = /\S+@\S+\.\S+/; // Paprastas reguliarios išraiškos pavyzdys
return re.test(email);
}
// Vienetinių testų su Jest pavyzdys
describe('validateEmail', () => {
test('turėtų grąžinti true tinkamam el. paštui', () => {
expect(validateEmail('test@example.com')).toBe(true);
expect(validateEmail('firstname.lastname@example.com')).toBe(true);
});
test('turėtų grąžinti false netinkamam el. paštui', () => {
expect(validateEmail('testexample.com')).toBe(false);
expect(validateEmail('test@example')).toBe(false);
expect(validateEmail('@example.com')).toBe(false);
});
test('turėtų grąžinti false tuščiam stringui', () => {
expect(validateEmail('')).toBe(false);
});
});
E2E testų pavyzdys naudojant Cypress:
// cypress/integration/email_field.spec.js
describe('Email Input Field', () => {
it('teisingai validuoja ir rodo klaidą netinkamam įvedimui', () => {
cy.visit('/your-form-page'); // Puslapio URL
cy.get('#email-input').type('netinkamas-el-pastas'); // Netinkamas el. paštas
cy.get('button[type="submit"]').click(); // Siuntimo mygtukas
cy.get('.error-message').should('būti matomas').and('turėti', 'Netinkamas formatas'); // Klaidos pranešimo patikrinimas
});
it('leidžia pateikti formą su tinkamu el. pašto adresu', () => {
cy.visit('/your-form-page');
cy.get('#email-input').type('tinkamas@elpastas.lt');
cy.get('button[type="submit"]').click();
// Tolimesni patikrinimai: pavyzdžiui, nukreipimas, sėkmingo siuntimo pranešimas
cy.url().should('apimti', '/sėkmė'); // URL patikrinimas
});
});
Testų atvejų lentelė:
| ID | Vartotojo veiksmas | Laukiamas rezultatas |
|---|---|---|
| TC_01 | Įvesti test@example.com |
Laukas laikomas galiojančiu. Forma siunčiama (jei visi laukai užpildyti). |
| TC_02 | Įvesti netinkamas-el-pastas |
Laukas laikomas negaliojančiu. Rodo klaidos pranešimą. |
| TC_03 | Palikti lauką tuščią ir bandyti siųsti formą | Laukas laikomas negaliojančiu (jei būtinas). Rodo klaidos pranešimą. |
| TC_04 | Įvesti test@example.co.uk |
Laukas laikomas galiojančiu. |
| TC_05 | Įvesti <script>alert('XSS')</script> |
Skriptas neturi būti vykdomas. Laukas turi būti sanituotas arba validuotas. |
Reikia atsižvelgti į projekto specifinius reikalavimus (pvz., tam tikrų domenų palaikymas), testavimą skirtinguose įrenginiuose ir naršyklėse.