개발자's Life

Java Junit 이용하여 DB에 DummyData 입력하기! 본문

Back-end/Java

Java Junit 이용하여 DB에 DummyData 입력하기!

Rowen Jobs 2021. 12. 10. 12:04
728x90
반응형

Build Path에 Junit 추가하기

Junit을 사용할려면 우선 Build Path 로 들어가셔서 추가 해주어야 합니다! .

Junit 작업할 프로젝트 마우스 오른쪽 클릭 -> Build Path -> Congifure Build Path... 순서로 들어갑니다.

 

 

Classpath를 클릭하면 오른쪽 버튼

들이 활성화 됩니다. 활성화 된 버튼중에 Add Library 클릭! 

 

Jnuint 클릭 후 Next를 합니다

 

저는 Jnuit5 버전을 선택하고 Finish 하겠습니다.

 

Classpath에 추가 된 것을 알 수 있고 Apply and Close를 해줍니다. 

 

src/test/java 아래에 com.lec.spring 밑에 dummy 패키지를 추가해주어 Jnuit 클래스를 만들어 보겠습니다

 

JUnit Test Case를 선택하시고 Next를 하게 되면 아래에 사진과 같이 나옵니다 

 

 

전 패키지 이름을 com.lec.spring.dummy로 정하고 DummyDatas.java  를 만들었습니다. 

 

클래스 내부 코드입니다

 

package com.lec.spring.dummy;

import static org.junit.jupiter.api.Assertions.fail;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Random;

import org.junit.jupiter.api.Test;

class DummyDatas {
	// JDBC 관련 기본 객체 변수들 선언
	Connection conn = null;
	Statement stmt = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;   // executeQuery(), SELECT 결과 
	int cnt = 0;           // executeUpdate(), DML 결과

	// MySQL
	public static final String DRIVER = "com.mysql.cj.jdbc.Driver";  // JDBC 드라이버 클래스
	public static final String URL = "jdbc:mysql://localhost:3306/rowendb716";  // DB 서버 정보
	public static final String USERID = "rowen";   // DB 사용자 계정 정보
	public static final String USERPW = "1234";
	
	public static final String SQL_WRITE_INSERT = 
			"INSERT INTO board" + 
					"(userId, title, summary) " +
					"VALUES(?, ?, ?)";

	@Test
	void test() {
		fail("Not yet implemented");
	}
	
	
	String[] userId = {"짱구", "아이언맨", "철수", "토르", "로키", "유리", "훈이", "신형만", "봉미선"};
	Random rd = new Random();
	
	@Test
	void genData() {
		try {
			Class.forName(DRIVER);
			conn = DriverManager.getConnection(URL, USERID, USERPW);
			
			// 테스트용 dummy 데이터 만들기
			pstmt = conn.prepareStatement(SQL_WRITE_INSERT);
			
			int num = 50;
			for(int i = 0; i < num; i++) {
				pstmt.setString(1, String.format("%s", userId[rd.nextInt(9)])); 
				pstmt.setString(2, String.format("content%04d", i));	// content0000, content0001 .....
				pstmt.setString(3, String.format("name%04d", i)); 		//name0000, name0001.....
				cnt += pstmt.executeUpdate();
			}
			System.out.println(cnt + "개 의 데이터가 INSERT 되었습니다");
			
		} catch(Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(pstmt != null) pstmt.close();
				if(conn != null) conn.close();
			} catch(Exception e) {
				e.printStackTrace();
			}
			
		}
	}

}

 

 

@Tset 어노테이션을 테스트 할 메소드 위에 작성합니다. 

 

 

 

@Test 어네테이션이 붙은 메소드를 왼쪽마우스 클릭 후 오른쪽 마우스를 클릭해줍니다.

사진과 같이 RunAs에 JUnit Test를 클릭해줍니다 ! 

 

성공이 되었을때 Junit은 

 

이러한 결과를 보여지게 되고 

확인을 위해 콘솔창에 출력을 해줍니다

 

 

 

728x90
Comments