[1] JUnit Test 클래스 생성
(1) STS4에서 Test 생성한다
패키지 선택 > New > Other > JUnit Test Case
Test 클래스 이름
어떤 클래스의 Test인지 browse를 선택
(2) 인텔리제이에서 Test 생성한다
마우스오른쪽 > Go To > Test 를 클릭한다
Creat New Test
새로운 검증 테스트를 생성한다
확인 OK
Test 클래스가 실행되었고
어떤 정보를 Test할건지 내용을 넣는다
package com.fastcampus.ch3;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.sql.DataSource;
import javax.swing.tree.ExpandVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import static org.junit.Assert.*;
public class DBConnectionTest2Test {
}
클래스에 실행할 내용 함수를 그대로 가져와서 메서드 이름만 springJdbcConnectionTest()로 만들었다
getConnection()이 빨간색으로 줄이 생기기 때문에 예외처리를 해주자 -> throw Exception
Test는 @Test 표현과 assert 메서드를 사용해야한다
conn은 데이터베이스의 연결링크이고
정상적으로 연결이 되었다면 이 값은 null이 아니여야한다
package com.fastcampus.ch3;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.sql.DataSource;
import javax.swing.tree.ExpandVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import static org.junit.Assert.*;
public class DBConnectionTest2Test {
@Test
public void springJdbcConnectionTest() throws Exception {
ApplicationContext ac = new GenericXmlApplicationContext("file:src/main/webapp/WEB-INF/spring/**/root-context.xml");
DataSource ds = ac.getBean(DataSource.class);
Connection conn = ds.getConnection();
assertTrue(conn!=null);
}
}
노란박스에 Tests passed :1 은 정상적으로 작동했다는 테스트 완료 표시이다
[2] JUnit 테스트 실행하기
(1) 수동 실행
검증할 내용에 @Test 적용
assertTrue() 로 테스트 결과가 성공인지 실패인지 출력
JUnit Test 테스트 실행
테스트 성공
(2) 자동 실행
@RunWith(SpringJUnit4ClassRunner.class)
: 내부적으로 스프링 컨테이너를 생성해줌으로써 스프링과 JUnit 간의 인터페이스 역할을 한다
그런데 이렇게 코드를 적으면 import 오류가 떠서 다른 대안을 사용했다.
@ExtendWith(SpringExtension.class) 를 사용하니 오류가 발생하지 않음
@ContextConfiguration(Locations=~~)
:스프링 컨텍스트 설정파일을 읽는 역할을 한다
:스프링 컨테이너에 스프링 bean을 추가하기 위해 roo-context.xml 설정파일을 지정하였고 읽어야한다
만약에 코드가 같은데도 오류가 나면
import 내용을 참고하고 @RunWith로 바꿔본다
'🌈 백엔드 > 스프링 프레임워크' 카테고리의 다른 글
스프링_ 데이터 객체 DAO + 트랜잭션 서비스 (0) | 2023.09.10 |
---|---|
스프링 _ 데이터 객체 DAO + 트랜잭션 매니저 @Transitional (0) | 2023.09.09 |
스프링_ 시스템 프로퍼티 환경설정 (0) | 2023.09.06 |
BeansFactory & AppicationContext (0) | 2023.09.04 |
스프링 컨테이너 IoC컨테이너 (2) | 2023.09.04 |