HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
프로그래머스 프론트엔드 데브코스 2기
프로그래머스 프론트엔드 데브코스 2기
/
⭕
동근팀
/
💥
동근팀 팀프로젝트
/
🪧
Cypress 다혜 제안 정리
🪧

Cypress 다혜 제안 정리

Why? — 왜 사용해야하는지?Why Cypress?Advantage DisadvantageHow — 제안 사항테스트 코드 작성 시점작성할 테스트 코드작성 방법작성 예시(임시)Reference

Why? — 왜 사용해야하는지?

  • 프로젝트를 진행하면서 기능 구현 + 리팩토링이 병행 될 것인데 이에 대한 방어 구책이 필요함.
    • 특히 함께 협업할때 다른 사람이 구현한 기능을 수정하거나 할때
      • → 원하는 기능이 작동되는 것에 대한 검증
  • 기능 구현에 대한 명세서
    • 내가 어떤 기능을 구현했고, 다른 사람이 어떤 기능을 구현했는지 확인하는 명세서가 필요함.
      • 구현 한 사람 외 다른 사람이 리팩토링하거나 에러를 수정할때, 어떤 부분이 검증되어야하는지 명세 확인 반드시 필요함.
        • 기획서는 문서를 켜놓고 확인해야하며, 테스트 코드를 사용하는 경우 IDE로 전부 확인가능.
          • → 불필요한 노동 감소

Why Cypress?

  • Cypress는 E2E테스트이다.
    • E2E로 실제 사용자 동작을 테스트 할 수 있음.
      — 실제 상황에서 발생할 수 있는 에러를 사전에 발견할 수 있다.
      — 수동으로 테스트할 때 시간이 많이 걸리거나, 놓칠 수 있는 것들을 반복테스트하기에도 유용하다. 내가 구현한 기능이 매번 수동으로 테스트하지 않고, 자동으로 모두 정상적으로 동작한다는걸 확인할 수 있다.
  • React, Vue 라이브러리나 프레임워크에 종속되지 않음.
  • 사용 유저가 많아서 정보를 찾기 쉬움.
 

Advantage

  • 자신감을 가지고 리팩토링 할 수 있다.
    • 작업 코드가 망가지지 않았다는 확신을 가질 수 있다.
  • 문서화하여 공유할 수 있다.
    • 테스트 코드만으로 동료가 구현한 기능의 동작을 알 수 있다.
    • 코드의 목적성을 파악하기 수월하다.

Disadvantage

  • 테스트코드 작성법에 대한 학습 비용
  • 테스트코드를 작성하느라 사용 되는 비용
    • ⇒ 테스트 코드를 최대한 최소화하기. 한명이 주도적으로 테스트 코드를 작성애 대한 템플릿을 제공하고, 템플릿 수정하는 정도로 테스트 코드를 사용할 수 있도록 하기.
  • 테스트 코드의 퀄리티가 좋지 않을 수 있다.

How — 제안 사항

테스트 코드 작성 시점

  • 특정 기능이 완료되면 완료된 기준으로 테스트 코드 작성
    • 기능 구현 완료시 데일리로 스크럼하고 문서에 표시하기

작성할 테스트 코드

  • 테스트 코드가 필요하다고 판단 되는 필수 기능 위주 로만 작성
    • 테스트 코드가 필요하다고 판단되는 부분은 각자 기능, 혹은 페이지 단위로 범위를 나누고 정의하여 노션에 명세하여 공유할 것.
    • 명세한 테스트 기능은 노션 코멘트 기능을 사용하여 댓글로 의견 나누기
      • → 이게 꼭 필요한 테스트 코드일까요? 혹은 이 부분은 테스트가 필요할 거서 같아요 의견 나누면서 보안하기.
  • 구현해야하는 기능이 많아지면, 핵심 기능 외에는 테스트 하지 않기.
    • 핵심기능에 대한 정의를 다 같이.
      • (예시) 로그인 및 인증 성공 실패, 통신 실패시 alert 등등
    • 테스트 커버리지가 100% 일 필요는 없음. 굿 !

작성 방법

  • 다혜가 필요한 첫 테스트 코드들을 전부 다 작성하여 Template화 하여 제공,
    • (예시) 특정 값을 입력하고, click하고, 실패시 유효성 alert하는 테스트 코드
      ⇒ 입력값(목업데이터)만 바꾸고, click할 버튼(타겟)만 바꾸면 사용할 수 있음.
  • 기능이 리팩토링되거나 테스트코드 수정이 필요한 경우?
    • → 처음 사용되는 테스트 코드와 유사하게 수정, 및 공식문서 참조하여 각자 수정
      → 다혜한테 물어보거나 그냥 수정 요청도 OK
  • TDD 방식 적용 X (테스트 코드를 먼저 작성하고, 기능 구현) ⇒ 오래 걸림
  • BDD 방식 적용 (사용자 행위 생각하여 테스트 코드)
  • 테스트 코드 리팩토링 혹은 테스트 코드 구조에 대한 제안은 언제나 환영

작성 예시(임시)

  • command 를 사용하여 추상화 할 수 있음.
GitHub - dahye1013/js-vending-machine at step3
기존 HTML Template을 활용한다. 필요하다면 선택자를 참고한다. 상단에 탭메뉴가 존재하며 각 탭에 따라 적절한 기능을 수행한다. 상품 관리탭은 자판기가 보유하고 있는 물품을 추가하는 기능을 수행한다. 잔돈 충전탭은 자판기가 보유할 금액을 충전하는 기능을 수행한다. 상품 구매탭은 사용자가 금액을 충전할 수 있으며, 금액에 맞춰 상품을 구매하고, 남은 금액에 대해서는 잔돈을 반환하는 기능을 수행한다.
GitHub - dahye1013/js-vending-machine at step3
https://github.com/dahye1013/js-vending-machine/tree/step3
GitHub - dahye1013/js-vending-machine at step3
 
 
 

Reference


JavaScript End to End Testing Framework
npm install cypress Install Cypress for Mac, Linux, or Windows, then get started. A complete end-to-end testing experience. Set up tests Installing Cypress is simple. No dependencies, extra downloads, or changes to your code required. Write tests Write tests easily and quickly, and watch them execute in real time as you build your web application.
JavaScript End to End Testing Framework
https://www.cypress.io/
JavaScript End to End Testing Framework