본문 바로가기
🌈 백엔드/스프링 프레임워크

스프링_테스트_JUnit 실행

by 개발자 알마 2023. 9. 7.
반응형

 

 

 

[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로 바꿔본다 

 

반응형

댓글