Sun's Blog

[10분 테코톡] 단위테스트 본문

ETC

[10분 테코톡] 단위테스트

버스는그만 2023. 6. 15. 10:02

단위 테스트란 무엇인지

애플리케이션 안에 있는 개별적인 코드 단위의도한 대로 작동하는지 확인하는 행위

 

단위 테스트는 왜 사용하나요?

  • 원하는 부분만 테스트를 함으로 결과를 빠르게 볼 수 있다.
  • 미리 작성한 단위 테스트를 기반으로 프로덕션 코드의 리팩토링을 안정적으로 할 수 있다.
  • 단위 테스트가 실패하는 지점에서 문제점을 빠르게 찾을 수 있다.

결론: 코드의 일부분빠르게 검증할 수 있고, 코드 리팩토링이 안정적이고 코드의 문제점을 빠르게 찾을 수 있다.

 

단위 테스트 작성 꿀팁.

Given-When-Then 패턴 적용

  • given: 테스트를 위해 준비하는 과정, 테스트에 사용하는 값을 정의한다.
  • when: 테스트하고자 하는 기능을 실행한다.
  • then: 기능을 실행한 후 결과를 검증한다.

위의 패턴을 사용하면 더 쉽게 읽을 수 있고 유지 보수하기 좋지만 필수는 아니고 선택이다.

@ParameterizerTest 사용해서 여러 값을 테스트하자.

  • 테스트 값을 배열로 줄 수 있어서 중복된 결과를 줄일 수 있어 경계선 테스트같은 경우에 용이하다.

First 원칙

First원칙은 '클린 코드' 책의 저자 'Bob Martin'이 제시한 규칙이며 효율적이고 좋은 단위 테스트를 하기 위한 5가지 요소로 이뤄진 규칙이다.

  • F(Fast): 단위 테스트는 빨라야 한다.
  • I(Independent): 테스트는 독립적으로 동작해야 한다. 이전 테스트에 영향을 받으면 실패 원인을 찾기 어렵다.
  • R(Repeatable): 어떤 상황에서든 예상한 대로 테스트 결과가 나와야 한다.
  • S(Self-Validating): 출력 혹은 로그가 아닌 테스트 자체적으로 결과가 나와야한다. println이나 log가 아닌 valid로 증명해야한다.
  • T(Timely): 적시에 테스트를 철저하게 작성 해야한다.

후기

First 원칙은 몰랐는데 I부분에서 AutoIncrement 때문에 고생했던 것이 기억난다. 그리고 @ParameterizerTest 매번 사용해야지 하면서 사용안하는데 이번 프로젝트에서는 적용하도록 하자.

 

참고영상: https://www.youtube.com/watch?v=mIO4Rbe_M74&t=137s

'ETC' 카테고리의 다른 글

Git 명령어  (0) 2023.07.07
Ubuntu Gitlab 설치  (0) 2023.07.07
[10분 테코톡] Spring vs SpringBoot  (0) 2023.07.05
[10분 테코톡] 전략 패턴  (0) 2023.07.01
JWT  (1) 2023.05.15