End-to-end (e2e) тесты — это тип автоматизированного тестирования, который проверяет работу приложения от начала до конца, имитируя действия реального пользователя. В контексте Angular для e2e-тестирования традиционно использовался Protractor, а в современных проектах часто применяется Cypress.
import { browser, by, element } from 'protractor';
describe('App', () => {
it('should display welcome message', async () => {
await browser.get('/');
const title = await element(by.css('h1')).getText();
expect(title).toEqual('Welcome to My App!');
});
});
Особенности Protractor:
by.model
, by.binding
).describe('Login Page', () => {
it('should log in successfully', () => {
cy.visit('/login');
cy.get('#username').type('user@example.com');
cy.get('#password').type('password');
cy.get('form').submit();
cy.url().should('include', '/dashboard');
});
});
Преимущества Cypress:
await
/async
.Характеристика | Protractor | Cypress |
---|---|---|
Интеграция с Angular | ✅ Нативная | ⚠️ Требует настройки |
Скорость выполнения | ⚠️ Зависит от WebDriver | ✅ Высокая |
Отладка | ❌ Сложная | ✅ Встроенная |
e2e-тесты с Protractor/Cypress — это мощный инструмент для проверки работоспособности приложения "как у пользователя". Protractor — legacy-решение для Angular, Cypress — современная альтернатива с лучшей производительностью и UX для разработчика.