Chapter04. 테스트 구축하기

김신영·2023년 7월 9일
0

Refactoring

목록 보기
4/12
post-thumbnail

서론

리팩터링을 제대로 하려면 불가피하게 저지르는 실수를 잡아주는 견고한 Test Suite가 뒷받침돼야 한다.

자가 테스트 코드의 가치

모든 테스트를 완전히 자동화하고 그 결과까지 스스로 검사하게 만들자.

Test Suite는 강력한 버그 검출 도구로, 버그를 찾는 데 걸리는 시간을 대폭 줄여준다.

  • TDD
    • test - coding - refactroing

첫 번째 테스트

실패해야 할 상황에서는 반드시 실패하게 만들자.

자주 테스트하라. 작성 중인 코드는 최소한 몇 분 간격으로 테스트하고, 적어도 하루에 한번은 전체 테스트를 돌려보자.

테스트 추가하기

완벽하게 만드느라 테스트를 수행하지 못하느니, 불완전한 테스트라도 작성해 실행하는 게 낫다.

  • public 메서드를 빠짐없이 테스트하는 방식이 아니라, 위험 요인을 중심으로 작성해야한다!
  • beforeEach를 통해 공통된 fixture를 설정하는 걸 권장한다.

픽스처(Fixture) 수정하기

  • setup - exercise - verify
  • given - when - then
  • arrange - act - assert

경계 조건 검사하기

문제가 생길 가능성이 있는 경계 조건을 생각해보고 그 부분을 집중적으로 테스트 하자

  • Assertion 추가하기

어차피 모든 버그를 잡아낼 수는 없다고 생각하여 테스트를 작성하지 않는다면 대다수의 버그를 잡을 수 있는 기회를 날리는 셈이다.

결론

버그 리포트를 받으면 가장 먼저 그 버그를 드러내는 단위 테스트부터 작성하자.

1) 제품 코드보다 테스트 코드를 수정하는데 시간이 더 걸린다면,
2) 그리고 테스트 때문에 개발 속도가 느려진다고 생각되면,
테스트를 과하게 작성한건 아닌지 의심해보자.

  • 테스트 커버리지보다는, “누군가 결함을 심으면 테스트가 발견할 수 있다는 믿음”을 기준으로 테스트 코드를 작성하자.
profile
Hello velog!

0개의 댓글