작성
·
10
0
안녕하세요. 토비님!
강의 정말 잘 듣고 있습니다.
테스트 코드를 작성해본 경험이 많지 않아서
강의 내에서 테스트 단원을 보다가 궁금한 점이 있어서 질문드립니다.
강의의 예제는 paymentService 를 테스트 하는 코드를 작성하시고,
스프링을 이용하지 않는 방법과 스프링을 이용해 DI 를 통한 테스트를 진행합니다.
코드는 paymentService 의 prepare 메소드 하나를 검증하는데,
사실은 3가지 목적. 적용환율, 원화 환산 금액, 원화 환산 금액 유효시간을 테스트 합니다.
실제로 현업에서 사용하는 서비스 에서는 보다 많은 코드와 기능이 존재할테고,
그에 따른 경우의 수도 기하급수적으로 많아질거라고 생각해요.
그렇다면 보통, 어떤 기준을 통해 테스트를 작성하는 것이 바람직한 테스트 일까요 ?
예를들어 제가 생각해본 여러가지 방법은 다음과 같습니다.
단순히 prepare 메소드 하나만. 메서드 단위로 테스트를 진행.
메서드 안에 존재하는 메서드(예시 코드에서는 provider 메서드) 단위.
목적에 따라서. 적용 환율을 잘 가져오는지, 원화 환산 금액이 잘 계산 되는지, 유효시간을 잘 지키는지.
그 밖에 여러가지 방법.
예를들어 기능이 잘 작동하는지 크게 테스트 한 뒤, 내부적으로 변동사항이 있을 법한 코드만 따로 분리해서 테스트.
물론, 프로젝트 특성이나 팀의 컨벤션, 서비스 코드를 작성할 코드의 특성에 따라서 달라지겠지만
테스트 코드를 작성할 때는 너무 작게도, 그렇다고 너무 뭉뚱그려서도 안된다고 이해하고 있습니다.
보편적으로 어떤 기준을 가지고 테스트 코드를 작성하게 되나요 ?
답변