인프런 커뮤니티 질문&답변

전상원님의 프로필 이미지

작성한 질문수

실무에 바로 적용하는 프런트엔드 테스트 - 2부. 테스트 심화: 시각적 회귀・E2E 테스트

5.3. 서버 요청 가로채기

5.3 cy.intercept 질문

해결된 질문

24.06.27 15:28 작성

·

80

0

Q. cy.intercept()는 회원 가입 요청에 대한 성공/실패 응답을 모킹해서 받는데, 이 때 의도하는 코드는 1번이지만 응답이 정해져 있기 때문에 2번처럼 틀린 요청으로도 결과는 똑같이 나오게 될 거라고 생각됩니다.

실제 응답이 아니라 응답을 정해 놓고 전달하기 때문에 실제 동작과 다를 수도 있어서 이 부분은 '실패, 성공 시 문구 노출'이 나타나는 동작이 있다는 document 로만 이해해도 될까요??

1

성공 데이터 요청 -> 성공 데이터 응답

실패 데이터 요청 -> 실패 데이터 응답

2

실패 데이터 요청 -> 성공 데이터 응답

성공 데이터 요청 -> 실패 데이터 응답

답변 1

0

코드 조커, 오프님의 프로필 이미지
코드 조커, 오프
지식공유자

2024. 06. 27. 16:19

안녕하세요! 전상원님.

말씀하신 것처럼 intercept를 작성하게 되면 실패 데이터, 성공 데이터 모두 intercept에서 반환하는 메세지를 갖게됩니다. 하지만, 여러 실패 케이스에 대해 직접 API를 요청하면서 에러 케이스를 유발하는 것 자체가 매우 어렵고, 서버측에서도 노이즈한 로그가 수집되는 것으로 인식될 수 있습니다. 그런 케이스에 맞춰 intercept를 통해 실제 서버로 요청을 보내지 않고 응답을 가로채 조작하는 API를 소개드린 건데요.

여기서 주의해야 하는 점은, 서버 입장에서 반환되는 에러 코드에 맞춰서 intercept응답을 정의해야 하며 실제 동작과 최대한 유사하게 작성해야 합니다. 말씀해주신 것처럼 전혀 뜬금없는 응답에 대해 렌더링 하는 것은 테스트의 의미가 크게 없을 수 있습니다.

FE 입장에서 예상치 못한 에러 응답이 발생 했을 때 에러가 제대로 노출된다라는 맥락의 테스트를 작성한 것이라고 이해해주시면 감사하겠습니다!

전상원님의 프로필 이미지
전상원
질문자

2024. 06. 28. 15:05

"일어날 수 있는 요청과 응답에 대한 결과"에 대한 테스트(명세서)

답변 감사합니다