min

코드 리뷰 사이트 개인 회고 7일차 본문

프로젝트 회고

코드 리뷰 사이트 개인 회고 7일차

minprogramming 2023. 8. 30. 11:36

<회고록>

오늘은 코드 리뷰 사이트를 만들면서 어려웠던 점들에 대해서 같이 이야기를 나눠볼려고 한다.

 

1. test code and tdd

이번에 코드 리뷰 사이트를 만들면서 가장 시간을 많이 든 부분은 디버깅이었다. 어떤 기능을 만들면 해당 기능이 정상적으로 작동하는지를 확인하기 위해서 일일히 테스트를 진행했던 것이 가장 시간이 많이 든 부분이었다. 그래서 나는 이번 기회에 테스트를 자동화할 수 있으면 좋을 거 같다는 생각이 들었다. 그래서 테스트 코드에 대해서 알아봤으며 테스트 자동화에 대해서 찾아보았다. 그래서 오늘은 테스트코드 작성과 tdd에 대해서 알아볼려고 한다. 먼저 tdd란 데스트 주도 개발이다. tdd의 흐름은 다음과 같다.

  • RED : 실패하는 테스트 코드를 작성한다. (즉 내가 만들려고 하는 기능들에 대해서 미리 작성한다.)
  • GREEN : 실패하는 테스트 코드를 성공하는 테스트 코드로 바꾼다. (즉 내가 만들려고 하는 기능들을 만든다.)
  • REFACTOR : 성공한 코드를 리펙토링 한다.

즉 이런 식의 흐름을 거쳐서 테스트를 진행한다. 그렇다면 어떤 것들을 테스트 할까? 테스트를 하는 종류는 크게 2가지가 있다.

 첫번째는 유닛테스트이다. 유닛 테스트는 말 그대로 작은 단위에 테스트를 의미한다. 예를 들면 다음과 같다.

  • 컴포넌트가 잘 렌더링된다.
  • 컴포넌트의 특정 함수를 실행하면 상태가 우리가 원하는 형태로 바뀐다
  • 리덕스의 액션 생성 함수가 액션 객체를 잘 만들어낸다
  • 리덕스의 리듀서에 상태와 액션객체를 넣어서 호출하면 새로운 상태를 잘 만들어준다.

 두번째는 통합테스트이다. 통합 테스트는 말 그대로 큰 단위에 테스트를 의미한다. 예를 들면 다음과 같다.

  • 여러 컴포넌트들을 렌더링하고 서로 상호 작용을 잘 하고 있다
  • DOM 이벤트를 발생 시켰을 때 우리의 UI 에 원하는 변화가 잘 발생한다
  • 리덕스와 연동된 컨테이너 컴포넌트의 DOM 에 특정 이벤트를 발생시켰을 때 우리가 원하는 액션이 잘 디스패치 된다

 

 세번째로 테스트코드를 작성하는 방법은 내 코드를 보고 모르는 점이나 수정해야하는 점들은 알려주길 바란다.

https://github.com/helloworld442/coding-review-testcode-version  

 

GitHub - helloworld442/coding-review-testcode-version

Contribute to helloworld442/coding-review-testcode-version development by creating an account on GitHub.

github.com