Cypress — популярный фреймворк для сквозного тестирования веб-приложений. В нем нет встроенных перечислений, специфичных для самого инструмента, но вы можете создавать собственные перечисления в JavaScript, чтобы помочь организовать код автоматизации тестирования и управлять им. Перечисления, сокращение от enumerations, — это способ определить набор именованных констант, которые представляют отдельные элементы в коллекции.

Вот несколько примеров перечислений, которые могут быть полезны при автоматизации тестирования с использованием Cypress:

Тестовая среда:

const TestEnvironment = {
  LOCAL: 'local',
  STAGING: 'staging',
  PRODUCTION: 'production',
};

Роли пользователей:

const UserRole = {
  ADMIN: 'admin',
  EDITOR: 'editor',
  VIEWER: 'viewer',
};

Типы браузеров:

const BrowserType = {
  CHROME: 'chrome',
  FIREFOX: 'firefox',
  EDGE: 'edge',
  SAFARI: 'safari',
};

Статус теста:

const TestStatus = {
  PASSED: 'passed',
  FAILED: 'failed',
  SKIPPED: 'skipped',
  PENDING: 'pending',
};

Типы наборов тестов:

const TestSuiteType = {
  SMOKE: 'smoke',
  REGRESSION: 'regression',
  SANITY: 'sanity',
  PERFORMANCE: 'performance',
};

Приоритет теста:

const TestPriority = {
  CRITICAL: 'critical',
  HIGH: 'high',
  MEDIUM: 'medium',
  LOW: 'low',
};

Состояние элемента:

const ElementState = {
  VISIBLE: 'visible',
  HIDDEN: 'hidden',
  ENABLED: 'enabled',
  DISABLED: 'disabled',
};

Метод запроса API:

const RequestMethod = {
  GET: 'GET',
  POST: 'POST',
  PUT: 'PUT',
  DELETE: 'DELETE',
  PATCH: 'PATCH',
};

Стратегия поиска:

const LocatorStrategy = {
  CSS: 'css',
  XPATH: 'xpath',
  ID: 'id',
  CLASS: 'class',
  NAME: 'name',
  TAG: 'tag',
};

Категория теста:

const TestCategory = {
  FUNCTIONAL: 'functional',
  INTEGRATION: 'integration',
  UNIT: 'unit',
  ACCESSIBILITY: 'accessibility',
  SECURITY: 'security',
};

Чтобы использовать эти перечисления в тестах Cypress, вы можете ссылаться на значения по имени и свойству перечисления. Вот пример использования перечисления TestCategory:

describe('Login Tests - Functional', () => {
  const category = TestCategory.FUNCTIONAL;

Использование перечислений в коде автоматизации тестирования может помочь улучшить читаемость, удобство сопровождения и согласованность тестовых сценариев. Перечисления помогут обновить один и тот же набор кода в нескольких местах одним изменением.

Реализация Enums будет разной для каждого языка, но основные концепции почти одинаковы.

Не стесняйтесь хлопать в ладоши, если вам нравится контент. Удачного тестирования автоматизации :) Ура. 👏