Junior
როგორ სწორად დავტესტოთ ელფოსტის მისამართის ველი?
sobes.tech AI
პასუხი AI-სგან
ელექტრონული ფოსტის ველი ტესტირება მოიცავს ფუნქციონალურობის, ვალიდაციის, გამოყენების სარგებლის და უსაფრთხოების შემოწმებას:
ფუნქციონალური ტესტირება:
- სწორი მისამართების შეყვანა:
test@example.comfirstname.lastname@example.comemail@subdomain.example.comfirstname+lastname@example.comemail@example.co.ukemail@example.museumemail@example.nameemail@example.დემო(ინტერნაციონალიზებული დომენის სახელების მხარდაჭერა - IDN)
- არასწორი მისამართების შეყვანა:
@არარსებობა:testexample.com- რამდენიმე
@:test@@example.com - არასწორი ფორმატი:
test@example - მომხმარებლის სახელის არარსებობა:
@example.com - სპეციალური სიმბოლოები მომხმარებლის სახელში:
te!st@example.com,te#st@example.com - სპეციალური სიმბოლოები დომენში:
test@exa!mple.com - გრძელი მისამართი (სահմանափակումების შემოწმება):
a_very_long_email_address_that_exceeds_typical_limits@example.com - სივრცეები მისამართში:
test @example.com - სინტაქსის შეცდომა მისამართში:
test@.com,test.@example.com - IP მისამართით მისამართი (თუ მხარდაჭერა არ არის):
test@[192.168.1.1] - კირილიცით მისამართი (თუ IDN მხარდაჭერა არ არის):
ტესტ@пример.рф
- ცარიელი ველი: ფორმის გამოგზავნა ცარიელი ველით.
ვალიდაცია:
- ელფოსტის სინტაქსის შესაბამისობის შემოწმება (რეგულარული გამოთქმებით):
- შეტყობინებების ჩვენება მომხმარებელს არასწორი მონაცემების შეყვანისას:
- შეტყობინებების სიზუსტისა და გასაგებიობის შემოწმება:
- თუ ვალიდაცია შეცდომებს აჩვენებს, ფორმა არ უნდა გაიგზავნოს:
გამოყენებადობა & UI/UX:
- ფოკუსის მიცემა ველზე გვერდის ჩატვირთვისას:
- მაგალითის ტექსტი (placeholder): (
მაგალითად, user@example.com) - ბრაუზერის ავტომატური შევსების მხარდაჭერა:
<label>ნიშნულის არსებობა:- მომხმარებელი არ უნდა შეძლოს დაუშვებელი სიმბოლოების შეყვანა:
- თუ მარკა არსებობს, მისი მუშაობის შემოწმება:
უსაფრთხოება:
- XSS-ის წინააღმდეგ შემოწმება: სკრიპტების, HTML ტეგების შეყვანა (
<script>alert('XSS')</script>): - SQL/NoSQL ინექციების წინააღმდეგ: სპეციფიკური სიმბოლოების შეყვანა:
- სიჩქარის შეზღუდვა (თუ ფორმა ელფოსტის გაგზავნას ან რესურსის მძიმე მოქმედებებს ახორციელებს): IP ან მომხმარებლის დონეზე:
ავტომატიზაცია:
- ელფოსტის ვალიდაციის ფუნქციების ერთეულური ტესტების დაწერა:
- ინტეგრაციის ტესტების დაწერა ფორმის კონტექსტში ველის მუშაობის შემოწმებისთვის:
- სრული სცენარების E2E ტესტების დაწერა ფორმის გამოყენების შემოწმებისთვის:
მოდელი კოდი ელფოსტის ვალიდაციის ერთეულური ტესტებისთვის:
// ვივარაუდოთ, რომ გვაქვს `validateEmail` ფუნქცია
function validateEmail(email) {
const re = /\S+@\S+\.\S+/; // მარტივი რეგულარული გამოთქმა
return re.test(email);
}
// Jest-ის გამოყენებით ერთეულური ტესტები
describe('validateEmail', () => {
test('უნდა აბრუნებდეს true სწორი ელფოსტის შემთხვევაში', () => {
expect(validateEmail('test@example.com')).toBe(true);
expect(validateEmail('firstname.lastname@example.com')).toBe(true);
});
test('უნდა აბრუნებდეს false არასწორი ელფოსტის შემთხვევაში', () => {
expect(validateEmail('testexample.com')).toBe(false);
expect(validateEmail('test@example')).toBe(false);
expect(validateEmail('@example.com')).toBe(false);
});
test('უნდა აბრუნებდეს false ცარიელი სტრიქონისთვის', () => {
expect(validateEmail('')).toBe(false);
});
});
E2E ტესტის მაგალითი Cypress-ის გამოყენებით:
// cypress/integration/email_field.spec.js
describe('Email Input Field', () => {
it('სწორად ვალიდაციას და აჩვენებს შეცდომას არასწორი შეყვანისას', () => {
cy.visit('/your-form-page'); // ფორუმის გვერდის URL
cy.get('#email-input').type('არასწორი-ელფოსტა'); // არასწორი ელფოსტა
cy.get('button[type="submit"]').click(); // გაგზავნის ღილაკი
cy.get('.error-message').should('გავლენადი').and('შეიმოწმოს', 'არასწორი ფორმატი'); // შეცდომის შეტყობინების შემოწმება
});
it('ნებადართულია ფორმის გაგზავნა სწორი ელფოსტით', () => {
cy.visit('/your-form-page');
cy.get('#email-input').type('სწორი@ელფოსტა');
cy.get('button[type="submit"]').click();
// დამატებითი შემოწმებები წარმატებული გაგზავნის შემდეგ
cy.url().should('შეიცავდეს', '/წარმატება'); // URL-ის შემოწმება
});
});
ტესტის შემთხვევების ცხრილი:
| ID | მომხმარებლის მოქმედება | ელოდება შედეგი |
|---|---|---|
| TC_01 | test@example.com შეყვანა |
ველი ვალიდურია. ფორმა გაიგზავნება (თუ ყველა ველი შევსებულია). |
| TC_02 | არასწორი-ელფოსტა შეყვანა |
ველი ვალიდურია. შეცდომის შეტყობინება ჩანს. |
| TC_03 | ველის დატოვება ცარიელად და ფორმის გაგზავნის მცდელობა | ველი ვალიდურია (თუ აუცილებელია). შეცდომის შეტყობინება. |
| TC_04 | test@example.co.uk შეყვანა |
ველი ვალიდურია. |
| TC_05 | <script>alert('XSS')</script> შეყვანა |
სკრიპტი არ უნდა შესრულდეს. ველი უნდა იყოს სანიარტული ან ვალიდური. |
უნდა გაითვალისწინოს პროექტის სპეციფიკური მოთხოვნები (მაგ., მხარდაჭერა გარკვეული დომენური ზონებისთვის), ტესტირება სხვადასხვა მოწყობილობებზე და ბრაუზერებზე.