- JUnit 4버전으로 진행
- JUnit Jupiter : 5버전
예시)
Maven Repository에서 Spring Test용 디펜던시를 복사한다.
(5.3.3 버전 사용)
pom.xml에 디펜던시를 추가한 후 version은 변수처리한다. (Spring과 같은 버전으로)
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${org.springframework-version}</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency>
spring-test dependency
를 추가한다.@RunWith
를 추가한다.@ContextConfiguration
을 추가한다.
- 클래스 레벨 annotation
- junit 버전을 지정한다.
예)// JUnit4를 이용한다. @RunWith(SpringJUnit4ClassRunner.class)
- 클래스 레벨 annotation
- 객체 생성 방법을 알려준다.
객체(Bean)를 생성한 방법에 따라서 아래 3가지 방식 중 선택한다.
<bean>
태그 :
예)@ContextConfiguration(locations="file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Bean
:
예)@ContextConfiguration(classes=AppConfig.class)
@Component
:
예)@ContextConfiguration(locations="file:src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml")
location
경로를 잡을 땐file:
로 경로 지정을 해줘야 한다.
@FixMethodOrder
- JUnit 4.11 버전부터 생성된 annotation
- 클래스 레벨 annotation
- 테스트 메소드의 실행순서를 설정해서 제어할 수 있다.
- 메소드 레벨 annotation
- 테스트를 수행하는 annotation
- JUnit 테스트 전용 메소드
- JUnit Test 생성 위치 :
src/test/java
- JUnit Test Case 생성 방법 :
New - JUnit Test Case
// JUnit4를 이용한다. @RunWith(SpringJUnit4ClassRunner.class) // ContactDao Bean 생성 방법을 알려준다. @ContextConfiguration(locations="file:src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml") // 테스트 메소드의 이름 오름차순(알파벳순)으로 테스트를 수행한다. @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class ContactUnitTest { @Autowired // Spring Container에서 ContactDao 객체(Bean)을 가져온다. private ContactDao contactDao; @Test // 테스트를 수행한다. public void test01_삽입테스트() { ContactDto contactDto = new ContactDto(0, "이름", "연락처", "이메일", "주소", ""); int insertResult = contactDao.insert(contactDto); assertEquals(1, insertResult); // insertResult가 1이면 테스트 성공이다. assertEquals(기대한 값, 실제로 나온 값) 이 같으면 test 성공 } @Test // 테스트를 수행한다. public void test02_조회테스트() { int contact_no = 1; // 연락처 번호를 시퀀스로 만들기 때문에 1부터 시작 ContactDto contactDto = contactDao.selectContactByNo(contact_no); assertNotNull(contactDto); // contactDto가 not null이면 테스트 성공이다. } @Test // 테스트를 수행한다 public void test03_삭제테스트() { int contact_no = 1; // 삭제 결과는 1 아니면 0 int deleteResult = contactDao.delete(contact_no); assertEquals(1, deleteResult); // deleteResult가 1이면 테스트 성공이다. // assertNull(contactDao.selectContactByNO(contact_no)); select 결과가 null이면 테스트 성공이다. // 대체 가능 코드 } }
- 삽입 테스트가 들어갔기 때문에 테스트는 한번만 한다.
- 테스트를 여러번 하고싶다면 DB에서 초기화를 진행한 후에 한다.
Run As - 3 JUnit Test
- 테스트 성공 확인
- 테스트 성공 유무는 JUnit 창에서 확인 가능하다.
👉Spring JUnit 테스트 활용 예제(깃허브 클릭)