Test
개요
Spring은 JAVA 프레임워크이기 때문에 JUnit을 테스트 도구로 사용한다. assert계열 메소드를 통과해야 정상 코드, 통과하지 못하면 오류 발생
First
- Fast : 테스트는 빠르게 실행되어야한다.
- Isolated : 테스트는 서로 독립적이어야한다.
- Repeatable : 테스트는 반복할 수 있어야한다.
- Self-validating : 테스트가 스스로 성공/실패를 검증할 수 있어야한다.
- Timely : 테스트코드는 코드 작성 직후 혹은 코드 작성과 동시에 작성되어야한다.
관련 어노테이션
공통
- @Test : 테스트용 메소드 지정
JUnit4
- @Before/After : 테스트 메소드 실행 전/후 수행할 메소드
- @Before/AfterClass : 테스트 실행 전/후 실행할 메소드
- @RunWith : 매개변수로 SpringJUnit4ClassRunner.class 클래스가 들어감, 실행환경을 설정, 주로 테스트 코드에 사용
- @WebAppConfiguration : 웹 애플리케이션 컨텍스트를 로드하여 Spring MVC 환경을 테스트할 때 사용. 주로 웹 관련 설정과 빈들을 테스트하는 데 사용됩니다.
- @ContextConfiguration: 일반적인 Spring 애플리케이션 컨텍스트를 로드하여 테스트 환경을 설정할 때 사용. XML 설정 파일이나 자바 기반 설정 클래스를 통해 설정을 지정할 수 있습니다
JUnit5
- @SpringBootTest : 스프링 부트 테스트 클래스 지정, 없으면 빈을 인식하지 못한다.
- @BeforeEach/AfterEach : 테스트 메소드 실행 전/후 수행할 메소드
- @BeforeAll/AfterAll : 테스트 실행 전/후 실행할 메소드
- @ExtendsWith : 매개변수로 SpringExtension.class 클래스가 들어감, 실행환경을 설정, 주로 테스트 코드에 사용
- @Timeout : 테스트 코드의 만료 시간 지정, value로 시간 값, unit으로 단위를 지정한다.