강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

allmie4889 のプロフィール画像
allmie4889

投稿した質問数

実務に直接適用するフロントエンドテスト - パート2。テスト深化:視覚的回帰・E2Eテスト

5.3。サーバー要求の傍受

5.3 cy.intercept 질문

解決済みの質問

作成

·

171

0

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

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

1

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

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

2

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

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

javascripttdd소프트웨어-테스트viteste2echromatic

回答 1

0

hanjungv님의 프로필 이미지
hanjungv
インストラクター

안녕하세요! 전상원님.

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

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

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

allmy님의 프로필 이미지
allmy
質問者

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

답변 감사합니다

allmie4889 のプロフィール画像
allmie4889

投稿した質問数

質問する