Cypress는 웹 애플리케이션과 상호 작용할 수 있는 강력한 내장 명령 세트를 제공하는 엔드투엔드 테스트를 위한 강력한 도구입니다. 그러나 모든 프로젝트에는 기본 명령 세트로 완전히 처리되지 않을 수 있는 고유한 요구 사항이 있습니다. 여기서 사용자 정의 명령이 필요합니다. 사용자 정의 명령을 사용하면 Cypress의 기능을 확장하여 테스트를 더 읽기 쉽고 유지 관리하기 쉽게 만들 수 있습니다. 이 게시물에서는 Cypress에서 사용자 정의 명령을 생성하고 사용하여 테스트 자동화 프레임워크를 향상시키는 방법을 살펴보겠습니다.
사용자 정의 명령은 다음과 같은 여러 가지 이점을 제공합니다.
사용자 정의 명령을 만들기 전에 Cypress를 아직 설정하지 않았다면 설정해 보겠습니다.
npm install cypress --save-dev
설치 후 Cypress를 엽니다.
npx cypress open
Cypress 사용자 정의 명령은 cypress/support/commands.js 파일에 정의되어 있습니다. 사용자 정의 명령을 만들고 사용하는 방법을 알아보기 위해 몇 가지 예를 살펴보겠습니다.
예제 1: 로그인 명령
자주 상호 작용해야 하는 로그인 양식이 있다고 가정해 보겠습니다. 로그인 프로세스를 처리하는 사용자 정의 명령을 만들 수 있습니다:
// cypress/support/commands.js Cypress.Commands.add('login', (email, password) => { cy.visit('/login'); cy.get('input[name=email]').type(email); cy.get('input[name=password]').type(password); cy.get('button[type=submit]').click(); });
이제 테스트에서 로그인 명령을 사용할 수 있습니다.
// cypress/integration/login.spec.js describe('Login Tests', () => { it('Should login with valid credentials', () => { cy.login('[email protected]', 'password123'); cy.url().should('include', '/dashboard'); }); });
예 2: 어설션이 포함된 사용자 정의 명령
명령에 사용자 정의 어설션을 추가할 수도 있습니다. 요소가 표시되고 특정 텍스트가 포함되어 있는지 확인하는 명령을 만들어 보겠습니다.
// cypress/support/commands.js Cypress.Commands.add('shouldBeVisibleWithText', (selector, text) => { cy.get(selector).should('be.visible').and('contain.text', text); });
테스트에서의 사용법:
// cypress/integration/visibility.spec.js describe('Visibility Tests', () => { it('Should display welcome message', () => { cy.visit('/home'); cy.shouldBeVisibleWithText('.welcome-message', 'Welcome to the Dashboard'); }); });
Cypress의 사용자 정의 명령은 프레임워크의 기능을 확장하는 강력한 방법을 제공하여 테스트를 더 재사용 가능하고 유지 관리 가능하며 읽기 쉽게 만듭니다. 일반적인 작업을 캡슐화하고 사용자 지정 어설션을 추가하면 테스트 자동화 프로세스를 간소화하고 가장 중요한 작업, 즉 애플리케이션이 완벽하게 작동하는지 확인하는 데 집중할 수 있습니다.
지금부터 Cypress 프로젝트에서 사용자 지정 명령 구현을 시작하고 테스트 작업 흐름에서 이 명령이 가져올 수 있는 차이점을 확인하세요. 즐거운 테스트 되세요!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3