11.8(월) 왜 테스트를 해야하는가(TDD 개념)

기운찬곰·2021년 11월 8일
0

TIL

목록 보기
6/10

💻 참고 사이트(React Testing Crash Course) : https://www.youtube.com/watch?v=OVNjsIto9xM
💻 벨로퍼트와 함께하는 리액트 테스팅 : https://learn-react-test.vlpt.us/#/

왜 테스트를 해야하는가?

사실 나는 테스팅, 테스트 주도 설계(TDD)를 잘 사용하는 편은 아니다. 물론 배워는 봤으며 Node에서도, Spring에서도 간단하게나마 사용해봤다.

테스트를 하면 좋은 점은 내 생각에는 가장 큰 이유는 소스코드가 수정되면서 발생하는 연쇄 효과로 인해 기존에는 잘 되었던게 어느 순간에 안 되는 상황이 생기기 마련인데 이걸 또다시 반복적으로 테스트할 필요가 없다는 것이다. 테스트 코드를 작성하면 소스코드를 수정해도 동일한 테스트를 수행해서 결과를 보기 쉽다.

하지만 내가 테스트 코드를 사용하지 않은 이유는 나는 익숙하지가 않은것도 있고 실무에서 아직까지 제대로 사용해본 경험이 없기 때문일수도 있겠다. 테스트 코드 사용시 장단점은 있겠지만 앞으로는 변화하는 추세이므로 리액트에서 테스트 코드를 어떻게 작성하는지 배워볼 필요가 있겠다고 생각했다.

테스트 종류

테스트 종류는 크게 두가지 혹은 세가지로 나눌 수 있는 거 같다. 이러한 테스트 유형은 종종 피라미드로 시각화 된다.

이미지 참고 : https://dev.to/emarsys/react-testing-crash-course-ccl

피라미드는 더 낮은 수준의 테스트를 작성하는 것이 더 저렴하고 실행이 더 빠르고 유지관리가 더 쉽다는 것을 나타낸다. 하지만 단위 테스트만을 작성하지는 않는다. 그 이유는 상단에 대한 테스트가 시스템에 더 많은 확신을 주고 구성요소가 서로 잘 작동하는지 확인하기 때문이다.

즉, 테스트 유형간의 차이점을 정리하자면

  • 단위 테스트는 격리된 단위 코드 단위(클래스, 기능)에서만 확인
  • 통합 테스트는 여러 단위가 예상대로 함께 잘 작동하는지 확인
  • 종단 테스트는 외부세계(브라우저)에서 애플리케이션을 관찰

그래서 유닛 테스트는 보통 한 파일만 불러와서 진행하는 반면, 통합 테스트는 여러 요소들을 고려하는 과정에서, 여러 파일들을 불러와서 사용하게 될 수도 있다.

테스트 우선순위

테스트에는 여러가지 우선순위가 있겠지만 가장 중요한건 역시 High value features일 것이다. 즉 돈과 관련된 것이 가장 중요하겠지?

그 외에도 여러가지가 있을 것이다. 컴포넌트가 잘 렌더링되는가. 컴포넌트의 특정 함수를 실행하면 우리가 원하는 형태로 바뀌는가. 리덕스의 리듀서에 상태와 액션객체를 넣어서 호출하면 새로운 상태를 잘 만들어주는가

여러 컴포넌트들을 렌더링하고 서로 상호작용을 잘하고 있는가. 등등...

Unit tests

react-testing-starter : https://github.com/MitchelSt/react-testing-starter

profile
배움을 좋아합니다. 새로운 것을 좋아합니다.

0개의 댓글

관련 채용 정보