프라이D
프라이Develog(❁´◡`❁)
프라이D
전체 방문자
오늘
어제
  • ALL (378)
    • TDD, Cleancode with JavaScr.. (5)
    • 프로젝트 (32)
      • work (3)
      • 직접 만드는 기술 블로그 (2)
      • 데일리 옥션 (19)
      • 모락모락 (8)
    • Computer Science (1)
    • Algorithm & 자료구조 (94)
      • 알고리즘 w.JavaScript (53)
      • 자료구조 (5)
      • (인프런) 자바스크립트 알고리즘 문제풀이 (34)
    • JavaScript (45)
      • JavaScript (41)
      • 모던 자바스크립트 Deep Dive (4)
    • WEB (13)
    • 회고 (12)
    • TIL (109)
    • WIL (7)
    • Stacks (20)
      • React.js (6)
      • Next.js (1)
      • Redux (3)
      • Node.js (2)
      • GIT (2)
      • SAP (1)
    • 15일 메이킹 프로젝트 (15)
    • 이전 기록 (14)
    • ETC. (5)
    • ---------------2021 (6)
      • 내일배움단-웹개발 5주 (2)
      • 정보처리기사 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 코드스테이츠
  • 국비지원
  • JavaScript
  • 모던자바스크립트딥다이브
  • 알고리즘
  • 내일배움카드
  • 코딩프로젝트
  • 2023 인프콘 후기
  • 내일배움단
  • MySQL
  • 자바스크립트알고리즘
  • 투포인터알고리즘
  • vanilaJS
  • Til
  • 비트마스크
  • 스파르타코딩클럽
  • 자바스크립트비트마스크
  • nomadcoders
  • 자바스크립트
  • nomadcoder

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
프라이D

프라이Develog(❁´◡`❁)

TIL

[TIL] 2023-0930

2023. 9. 30. 17:53

Facts

- cypress e2e 테스트 작성중... 특정 응답에 대한 케이스를 테스트하는 중이라 intercept 활용중

 

Feelings

- 연휴동안 엄청 쉬고 다시 시작하려니 힘들다. 하기 힘든 날에는 30분이라도 들여다 봐야지

 

Findings

- intercept 가 모든 요청에 대해 적용되는게 아니고, 첫번째 요청에만 적용되는 현상이 있음 => intercept 를 위치시키는 순서의 문제, axios interceptor 랑 헷갈렸다. intercept 의 순서가 중요함..! 이 부분만 따로 실행시키는 initialize 메서드가 있으면 좋겠군. 

Cypress.Commands.add('migrationLogin', (email, password) => {
  // 이 구문이 실제 api 요청을 보내게 만드는 로직보다 전에 실행되어 있어야 한다.
  cy.intercept(
    { method: 'POST', pathname: '**/auth/signin' },
    {
      statusCode: 201,
      body: {
        // ... 
      },
    }
  ).as('migrationLogin');
  cy.login(email, password);
  cy.wait('@migrationLogin');
});

- cypress 는 보안상의 이유로 같은 도메인에 대해서만 테스트를 진행할 수 있다. 따라서 외부 도메인으로 리다이렉트 되는 경우, 리다이렉트 여부를 파악하기 위해서는 해당 request 를 검증하는 방식으로 접근해야한다.

cy.intercept(
  'POST',
  '리다이렉트 될 주소'
).as('redirect');

 cy.wait('@redirect')
  .its('request.body') // 혹은 request.url 로 도메인을 확인할 수 있음
  .should('include', '리다이렉트 하면서 보낼 데이터');

 

Feedback

- action 에 대한 repository 를 만들어서 테스트 로직을 구성하는 방식이 상당히 이해하기 쉽고 좋다. 링크

- 테스트 로직 이외에 해야할게 많아서 진도를 많이 못나가고 있음... 아무래도 외부 api 연동된 부분에 대한 테스트 로직이다 보니 더 그러한 것 같다. 

 

Future Action

- 제대로 동작할 수 있게 모킹하자

저작자표시 (새창열림)

'TIL' 카테고리의 다른 글

[TIL] 2023-1004  (0) 2023.10.05
[TIL] 2023-1003  (0) 2023.10.04
[TIL] 2023-0926 테스트  (0) 2023.09.27
[TIL] 2023-0925 점진적 과부하  (4) 2023.09.26
[TIL] 2023-0924 : 유연하고 확장되기 쉽고 교체되기 쉬운 코드를 작성하자.  (0) 2023.09.25
    'TIL' 카테고리의 다른 글
    • [TIL] 2023-1004
    • [TIL] 2023-1003
    • [TIL] 2023-0926 테스트
    • [TIL] 2023-0925 점진적 과부하
    프라이D
    프라이D
    틀린내용 정정 및 개선사항은 언제든지 댓글 달아주세요 :D

    티스토리툴바