-
[Cypress] Cypress에서 비동기 처리를 수행하는 방법카테고리 없음 2024. 5. 7. 14:13
Cypress의 명령 체인 내에서 then() 또는 should()을 사용하거나, cy.wrap()과 같은 명령을 사용하여 프로미스를 처리합니다.
- then() 또는 should() 사용:
it('비동기 처리 예제', () => { cy.visit('/some-page') .then(() => { // 비동기 작업 수행 return new Promise((resolve, reject) => { // 예: setTimeout 사용 setTimeout(() => { // 비동기 작업 완료 후에는 resolve 호출 resolve(); }, 2000); }); }) .then(() => { // 비동기 작업 완료 후의 동작 cy.get('.result').should('contain', '예상 결과'); }); });- cy.wrap() 사용:
it('비동기 처리 예제', () => { // 비동기 작업을 프로미스로 래핑 cy.wrap(new Promise((resolve, reject) => { // 예: setTimeout 사용 setTimeout(() => { // 비동기 작업 완료 후에는 resolve 호출 resolve(); }, 2000); })) .then(() => { // 비동기 작업 완료 후의 동작 cy.visit('/some-page'); cy.get('.result').should('contain', '예상 결과'); }); });비동기 작업이 완료될 때까지 기다리려면, .then() 또는 .should()를 사용하여 명시적으로 비동기 작업이 완료될 때까지 대기할 수 있습니다. 또는 cy.wrap()을 사용하여 프로미스를 Cypress 체인에 래핑하여 비동기 작업을 처리할 수 있습니다.
cy.wrap()은 Cypress에서 사용되는 유틸리티 함수 중 하나입니다. cy.wrap()은 값을 래핑하여 Cypress 체인으로 전달하거나, 프로미스를 Cypress 체인으로 전달하여 비동기 작업을 처리하는 데 사용됩니다.
cy.wrap('Hello Cypress').then((value) => { // 'Hello Cypress' 값을 사용하여 다른 Cypress 명령 실행 });- 값 래핑: Cypress 체인에 값을 전달하려면 cy.wrap()을 사용하여 값을 래핑합니다.
- 프로미스 처리: 프로미스를 Cypress 체인으로 전달하여 비동기 작업을 처리합니다.
cy.wrap(new Promise((resolve, reject) => { // 비동기 작업 수행 setTimeout(() => { resolve('Async value'); }, 2000); })).then((value) => { // 비동기 작업 완료 후의 동작 expect(value).to.equal('Async value'); });cy.wrap()은 Cypress 체인 내에서 값을 전달하고 프로미스를 처리하기 위한 유용한 도구로 사용