ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Cypress] Cypress에서 비동기 처리를 수행하는 방법
    카테고리 없음 2024. 5. 7. 14:13

    Cypress의 명령 체인 내에서 then() 또는 should()을 사용하거나, cy.wrap()과 같은 명령을 사용하여 프로미스를 처리합니다.

    1. then() 또는 should() 사용:
    it('비동기 처리 예제', () => {
      cy.visit('/some-page')
        .then(() => {
          // 비동기 작업 수행
          return new Promise((resolve, reject) => {
            // 예: setTimeout 사용
            setTimeout(() => {
              // 비동기 작업 완료 후에는 resolve 호출
              resolve();
            }, 2000);
          });
        })
        .then(() => {
          // 비동기 작업 완료 후의 동작
          cy.get('.result').should('contain', '예상 결과');
        });
    });
    1. 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 명령 실행
    });
    1. 값 래핑: Cypress 체인에 값을 전달하려면 cy.wrap()을 사용하여 값을 래핑합니다.
    2. 프로미스 처리: 프로미스를 Cypress 체인으로 전달하여 비동기 작업을 처리합니다.
    cy.wrap(new Promise((resolve, reject) => {
      // 비동기 작업 수행
      setTimeout(() => {
        resolve('Async value');
      }, 2000);
    })).then((value) => {
      // 비동기 작업 완료 후의 동작
      expect(value).to.equal('Async value');
    });

     

    cy.wrap()은 Cypress 체인 내에서 값을 전달하고 프로미스를 처리하기 위한 유용한 도구로 사용

     

Designed by Tistory.