본문 바로가기
Spring

[Spring] Oracle DB 연결 테스트

by jane.dev 2021. 9. 11.
반응형
테스트 코드를 작성해 전체 프로그램을 위한 서버 작동 없이도 연결여부를 확인 가능하며
제품의 안정성을 높이고 빠른 피드백을 받을 수 있으며
결과적으로 생산성을 높인다는 장점이 있음

 

1. mvnrepository.com에서 설치된 oracle 버전과 동일한 라이브러리를 복사해 pom.xml <dependencies> 태그 내부에 붙여넣기

<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
<dependency>
	<groupId>com.oracle.database.jdbc</groupId>
	<artifactId>ojdbc8</artifactId>
	<version>18.15.0.0</version>
</dependency>

 

2. 테스트 코드 작성을 위한 사전세팅

* JUnit 버전을 4.7 에서 4.12 로 변경

<!-- Test -->
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
	<scope>test</scope>
</dependency>

* mvnrepository에서 spring-test를 스프링 버전과 동일하게 세팅

<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-test</artifactId>
	<version>5.0.7.RELEASE</version>
	<scope>test</scope>
</dependency>

* mvnrepository에서 lombok 세팅

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.20</version>
	<scope>provided</scope>
</dependency>

 

3. src/test/java 경로에 테스트용 파일 생성해 테스트 코드 작성

클래스 내부에 lombok의 log4j 기능을 이용한 로깅을 위해 @Log4j 어노테이션 작성

@Log4j
public class OjdbcConnectionTest {
	static {
		try {
            		// 드라이버 설정(어떤 DB와 접속할지 알려주는 용도)
			Class.forName("oracle.jdbc.OracleDriver");
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

테스트 코드는 @Test가 작성된 메서드를 메인 메서드로 인식

	@Test
	public void testConnection() {
    		// Java 1.7 이후 버전의 JDBC 코드는 try~catch 구문 사용
		try(Connection con = DriverManager.getConnection(
        			// DB 주소 설정(oracle 18c 버전 기준)
        			"jdbc:oracle:thin:@localhost:51521/XEPDB1", 
                    		// DB 내부 계정 설정("id", "password")
            			"mytest", 
            			"mytest")){
			log.info(con);
			log.info("정상적 연결 완료");
		}catch(Exception e) {
        	// 연결 실패시 사유를 보여줌
			fail(e.getMessage());
		}
	}
}

 

4. 테스트 실행

 

5. 정상적 연결 시 커넥터 주소 출력

 

5. 비정상적인 연결 시 Failure Trace에 사유