서버를 켜지 않고 코드 품질 검증하기
"잘 돌아가는지 포스트맨으로 호출해 볼까?" ➔ 매번 직접 클릭해서 테스트하는 것은 비효율적입니다. 실무에서는 자동화된 테스트 코드를 작성하여 클릭 한 번에 수백 개의 로직 결함을 잡아냅니다. JUnit5와 AssertJ를 사용하여 테스트의 신세계를 경험해 보세요.
| 어노테이션 / 메서드 |
역할 |
@Test |
이 메서드가 테스트 코드임을 선언합니다. 해당 메서드를 독립적으로 실행할 수 있게 됩니다. |
@DisplayName("...") |
테스트 실행 결과창(콘솔)에 보여질 한글 이름을 지정하여 가독성을 높입니다. |
assertThat(A).isEqualTo(B) |
(AssertJ) A의 값이 B와 정확히 일치하는지 단언(검증)합니다. 다르면 테스트가 실패합니다. |
실전 코딩: 서비스 계층 테스트
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.*;
@SpringBootTest
class MemberServiceTest {
@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;
@Test
@DisplayName("회원가입이 정상적으로 이루어져야 한다")
void 회원가입_성공_테스트() {
// given (준비)
Member member = new Member("테스터");
// when (실행)
Long savedId = memberService.join(member);
// then (검증)
Member findMember = memberRepository.findById(savedId).get();
assertThat(member.getName()).isEqualTo(findMember.getName());
}
}
Tests passed: 1 of 1 test
회원가입이 정상적으로 이루어져야 한다 (112 ms)