5.2 테스트에서 상품 이름 사용, 로그인 세션 질문
Q1. 장바구니, 구매 버튼 클릭 시 해당 상품의 이름을 cy.findByText('Handmade Cotton Fish 장바구니 추가 완료!').should('exist) 상품 이름을 직접 입력하는데, (통합 테스트에서 모킹 데이터를 사용한다면 모킹 데이터는 직접 설정하기 때문에 가능하지만), 실제 api를 사용하면 첫번째 상품 데이터가 변경할 수도 있기 때문에 실패할 수도 있기 때문에 다르게 작성해야 하지 않을까요?? 질문 드립니다
Q2. 로그인을 커스텀 커맨드에서 설정해서 session을 사용해 설정해서 테스트할 때, 웹에서는 로그인 성공/실패 여부는 확인할 수 없는 것 아닌가요??
로그인이 실패하게 되면 로그인 관련 테스트는 모두 실패하게 되는데 그냥 이 결과로 로그인 성공/실패 확인을 하는 건가요??
답변 1
0
Q1. 장바구니, 구매 버튼 클릭 시 해당 상품의 이름을
cy.findByText('Handmade Cotton Fish 장바구니 추가 완료!').should('exist)상품 이름을 직접 입력하는데, (통합 테스트에서 모킹 데이터를 사용한다면 모킹 데이터는 직접 설정하기 때문에 가능하지만), 실제 api를 사용하면 첫번째 상품 데이터가 변경할 수도 있기 때문에 실패할 수도 있기 때문에 다르게 작성해야 하지 않을까요?? 질문 드립니다
넵. 이해하신 그대로입니다. 실제 데이터가 변경될 경우 해당 테스트를 검증하는 다른 방법을 사용해야 합니다.
적절하게 렌더링 되었는지 검증을 할 때 컨텐츠의 내용을 검증하기 어렵다면, 서버에서 내려온 데이터를 제대로 렌더링하고 있는지 정도. 존재 여부를 검증하는 정도라면 괜찮을 것 같아 보입니다.
Q2. 로그인을 커스텀 커맨드에서 설정해서 session을 사용해 설정해서 테스트할 때, 웹에서는 로그인 성공/실패 여부는 확인할 수 없는 것 아닌가요??
로그인이 실패하게 되면 로그인 관련 테스트는 모두 실패하게 되는데 그냥 이 결과로 로그인 성공/실패 확인을 하는 건가요??
로그인에 대한 검증 부분은 Login.cy.js에서 검증하고 있습니다.
로그인이 완료된 후에 테스트를 진행하는 부분은 이미 로그인이 정상적으로 되었다는 가정하에 작성된 테스트입니다.
실서비스를 대상으로 주기적으로 E2E 테스트를 진행하는 전략을 사용하고 있었다면, 로그인이 정상적으로 되었을 때 진행하는 테스트가 실패 했을 때 로그인이 제대로 진행되지 않았구나 라는 것을 검증할 수는 있을 것 같습니다. 다만, 해당 부분을 검증하는 명확한 테스트 케이스가 이미 Login.cy.js에 있기 때문에 완벽하게 부합하는 테스트 내용은 아닙니다.
실습에 사용된 MD파일 공유 가능한가요?
1
10
1
ai가 만든 강의인가요?
0
14
1
VSCode 설정 문의
0
15
2
PPT 코드 관련 질문
0
13
2
codex로 적용해도 큰 문제 없을까요?
0
27
1
강의 자료는 어디서 다운 받나요?
1
22
2
state 객체로 묶기
0
23
1
몽고 db 접속 오류
0
20
1
실습자료 확인 요청
0
55
2
3강 질문
0
46
2
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
37
1
2강 nodejs 3단계 설명 질문
0
50
1
imagesLoaded에 관한 질문
0
22
2
useEffect와 lifecycle문의
0
38
2
프론트엔드 학습 수준 문의
0
51
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
55
2
AvailableUsers
0
44
1
storybook/ addon react-router-dom
0
47
1
e2e 테스트 CI , 서버비용
0
75
1
Retry-ability와 커스텀 커맨드, 커스텀 쿼리 질문
0
150
1
브랜치 git clone 질문
0
133
1
unit-test-example 브랜치에서 'Test result not found.' 가 뜹니다...
0
183
1
4.3 테스트 질문 입니다
0
192
1
5.3 cy.intercept 질문
0
180
1





