강의

멘토링

커뮤니티

Inflearn Community Q&A

allmie4889's profile image
allmie4889

asked

Front-end testing for practical use - Part 2. Testing in depth: Visual regression and E2E testing

5.3. Intercepting server requests

5.2 테스트에서 상품 이름 사용, 로그인 세션 질문

Resolved

Written on

·

220

1

Q1. 장바구니, 구매 버튼 클릭 시 해당 상품의 이름을 cy.findByText('Handmade Cotton Fish 장바구니 추가 완료!').should('exist) 상품 이름을 직접 입력하는데, (통합 테스트에서 모킹 데이터를 사용한다면 모킹 데이터는 직접 설정하기 때문에 가능하지만), 실제 api를 사용하면 첫번째 상품 데이터가 변경할 수도 있기 때문에 실패할 수도 있기 때문에 다르게 작성해야 하지 않을까요?? 질문 드립니다

 

Q2. 로그인을 커스텀 커맨드에서 설정해서 session을 사용해 설정해서 테스트할 때, 웹에서는 로그인 성공/실패 여부는 확인할 수 없는 것 아닌가요??

로그인이 실패하게 되면 로그인 관련 테스트는 모두 실패하게 되는데 그냥 이 결과로 로그인 성공/실패 확인을 하는 건가요??

javascripttdd소프트웨어-테스트viteste2echromatic

Answer 1

0

hanjungv님의 프로필 이미지
hanjungv
Instructor

Q1. 장바구니, 구매 버튼 클릭 시 해당 상품의 이름을 cy.findByText('Handmade Cotton Fish 장바구니 추가 완료!').should('exist) 상품 이름을 직접 입력하는데, (통합 테스트에서 모킹 데이터를 사용한다면 모킹 데이터는 직접 설정하기 때문에 가능하지만), 실제 api를 사용하면 첫번째 상품 데이터가 변경할 수도 있기 때문에 실패할 수도 있기 때문에 다르게 작성해야 하지 않을까요?? 질문 드립니다

넵. 이해하신 그대로입니다. 실제 데이터가 변경될 경우 해당 테스트를 검증하는 다른 방법을 사용해야 합니다.

적절하게 렌더링 되었는지 검증을 할 때 컨텐츠의 내용을 검증하기 어렵다면, 서버에서 내려온 데이터를 제대로 렌더링하고 있는지 정도. 존재 여부를 검증하는 정도라면 괜찮을 것 같아 보입니다.

Q2. 로그인을 커스텀 커맨드에서 설정해서 session을 사용해 설정해서 테스트할 때, 웹에서는 로그인 성공/실패 여부는 확인할 수 없는 것 아닌가요??

로그인이 실패하게 되면 로그인 관련 테스트는 모두 실패하게 되는데 그냥 이 결과로 로그인 성공/실패 확인을 하는 건가요??

로그인에 대한 검증 부분은 Login.cy.js에서 검증하고 있습니다.

로그인이 완료된 후에 테스트를 진행하는 부분은 이미 로그인이 정상적으로 되었다는 가정하에 작성된 테스트입니다.

실서비스를 대상으로 주기적으로 E2E 테스트를 진행하는 전략을 사용하고 있었다면, 로그인이 정상적으로 되었을 때 진행하는 테스트가 실패 했을 때 로그인이 제대로 진행되지 않았구나 라는 것을 검증할 수는 있을 것 같습니다. 다만, 해당 부분을 검증하는 명확한 테스트 케이스가 이미 Login.cy.js에 있기 때문에 완벽하게 부합하는 테스트 내용은 아닙니다.

allmy님의 프로필 이미지
allmy
Questioner

답변 감사합니다

allmie4889's profile image
allmie4889

asked

Ask a question