Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: 기타 질문 사항 e2e 테스트 #172

Merged
merged 4 commits into from
Aug 31, 2024
Merged

Conversation

smb0123
Copy link
Collaborator

@smb0123 smb0123 commented Aug 28, 2024

주요 변경사항

테스트 내용

  • 사용자는 향후 계획활동을 기입할 수 있다.
  • 사용자는 지원 경로를 중복으로 선택가능하다.
  • 사용자는 지원 경로에서 기타를 선택할 경우 기타 지원 경로에 관한 내용을 입력할 수 있다.
  • 사용자는 아무것도 작성 및 선택하지 말고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다.
  • 사용자는 향후 계획활동을 기입하지 않고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (지원경로 선택 = true)
  • 사용자는 지원경로를 선택하지 않고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)
  • 사용자는 지원경로 중 “기타” 만 선택하고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)
  • 사용자는 “기타”가 아닌 지원경로 하나 이상과, “기타”를 선택하고 다음버튼을 누를 시, 다음 페이지로 넘어간다. (향후 계획활동 작성 = true, 지원경로 선택 = true )
  • 사용자는 지원경로 중 “기타”만 선택하고 기타에 관한 내용을 기입한 이후, 다음 버튼을 누를 시, 다음페이지로 넘어간다. (향후 계획활동 작성 = true, 지원 경로 선택 = true)

추가 사항

  • 기타 질문 사항 페이지로 이동하는 goOtherQuestions 함수 구현
  • 기타 질문 사항 e2e 테스트

리뷰어에게...

건규님께서 만드신 checkAlert 함수가 실제 alert문의 내용을 입력하지 않아도 cypress가 동작할 때 에러를 출력하지 않는 것 같습니다.

it("사용자는 지원경로 중 “기타” 만 선택하고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)", () => {
    cy.get("@plan").type("프로젝트").should("have.value", "프로젝트");
    cy.get("@etc").click();
    cy.get("@nextButton").click();
    cy.checkAlert("지원");
  });

image

  • 테스트 완료
    image

관련 이슈

closes #165

체크리스트

  • reviewers 설정
  • label 설정
  • milestone 설정

가끔씩 텍스트가 "2순위"인 span 태그를 인식하지 못하여 wait를
추가하였습니다.
@smb0123 smb0123 added the test ✅ 테스트 작성 label Aug 28, 2024
@smb0123 smb0123 requested review from 2yunseong and geongyu09 August 28, 2024 16:16
@smb0123 smb0123 self-assigned this Aug 28, 2024
Copy link
Collaborator

@geongyu09 geongyu09 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다! 몇 가지 커맨트 남겨보았는데 확인 부탁드립니다!!

cy.get("@instagram")
.should("have.class", "text-white")
.click()
.should("not.have.class", "text-white");
Copy link
Collaborator

@geongyu09 geongyu09 Aug 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

개인적으로 "지원 경로를 중복으로 선택 가능하다" 라는 테스트케이스에서 assert 부분이, 동일한 버튼을 2번 클릭 후 선택되지 않음을 확인하는 것은 올바르지 않는 테스트이지 않을까 생각합니다..!

다른 버튼 2개 이상 클릭 후 클릭한 것들이 올바르게 선택 되었는지를 확인하는 방향이 더 올바르지 않을까 생각합니다!

제가 잘못 확인한 부분이었네요..! 중간 부분에 should부분을 확인을 못했습니다..!
아침에 일어나자마자 확인해서 정신이 없었나 봅니다 ㅎㅎ

it("사용자는 지원경로를 선택하지 않고 다음버튼을 누를 시, “지원경로를 선택해주세요.”라는 alert창이 뜬다. (향후 계획활동 작성 = true)", () => {
cy.get("@plan").type("프로젝트").should("have.value", "프로젝트");
cy.get("@nextButton").click();
cy.checkAlert("지원 경로를 선택해주세요.");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

checkAlert는 이벤트리스너를 등록하는 함수라서 등록 전에 alert가 뜨게 되면 assert가 올바르게 되지 않을 수 있습니다.. 이 경우 cy.checkAlert() 함수를 먼저 실행해주면 올바르게 동작할겁니다!

    cy.checkAlert("지원 경로를 선택해주세요.");
    cy.get("@plan").type("프로젝트").should("have.value", "프로젝트");
    cy.get("@nextButton").click();

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

checkAlert 함수의 의미를 잘못 파악하고 있었네요.
코드 수정 후 테스트 결과 오류를 잘 출력하는 걸 확인했습니다.

beforeEach(() => {
cy.viewport(1200, 900);

cy.goOtherQuestions();
Copy link
Collaborator

@geongyu09 geongyu09 Aug 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

혹시 이동하는 로직을 함수로 뺀 이유가 있을까요?
분명히 가독성이 좋아지는 느낌이 들지만, 올바른 추상화일지에 대해서는 약간 의문이 남는 것 같긴 합니다..! 다른 분들은 어떻게 생각하시나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

beforeEach 문에 페이지를 이동하는 로직을 하는 것보다는 commands 파일에 페이지를 이동하는 함수를 정의해서 사용하는 것이 좋다고 생각합니다.

Copy link
Collaborator

@2yunseong 2yunseong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 👍
LGTM 👍

@smb0123 smb0123 merged commit 9688f22 into main Aug 31, 2024
1 check passed
@2yunseong 2yunseong deleted the test/165-other-questions branch September 9, 2024 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
test ✅ 테스트 작성
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FE] test: 기타 질문 사항 e2e 테스트 코드
3 participants