메이븐 레파지토리 검색하여 페이지 접속 후 spring-test 검색 >> 아무 버전이나 클릭 ( 버전은 아래서 바꿔줄 것이기 때문 ) >> 코드 복사
pom.xml 에 dependencies 태그 안에 붙여넣기 >> pom.xml 상단의 버전 copy >> 붙여넣은 코드에 version 복사한 것으로 바꾸기
프로젝트 우클릭 >> properties >> Java Build Path >> Libraries >> Add Library >> JUnit 선택 >> Next >> JUnit 4 선택 >> Finish >> Apply and Close
설치 완료
JUnit 을 사용하여 Test
컨트롤러 빈에 등록 ( 테스트 해볼 것임 ) >> testMember.xml 파일에 com.care.root 부터 모든 빈 객체를 테스트할때 사용하겠다라고 설정
- testMember.xml 파일에 설정하는 부분 -
웹 구동 파일이 많아 서버를 재시작하며 테스트 하기에 시간이 오래걸리는 경우 서버는 켜둔 상태로 빈 객체만 가져와서 객체가 정상적으로 작동하는지 테스트하기 위해 해당 xml 파일에 사용할 빈 객체의 범위를 설정하여 사용한다
TestMember.java 에 테스트 코드 작성 후 메소드에 마우스 올려둔 뒤 Ctrl + F11 눌러 JUnit 선택 후 확인 >> 빈 객체가 정상적으로 생성된 것 확인
MemberServiceImpl.java 에 MemberService 를 상속받은 뒤 @Service 어노테이션을 사용하여 빈 객체로 등록 >> Test 코드를 작성하여 assertNotNull 를 사용해서 해당 빈 객체가 null 값이 아니라 정상적으로 생성 되었는지 확인 ( 메소드에 커서 놓고 Ctrl + F11 ) >> 빈 객체가 null 이 아니라 정상주입 되었다면 결과가 초록색 바로 출력된다
create table test_mybatis(
id number(4),
name varchar2(20)
);
Oracle DB 에 테이블 추가
테이블 추가 완료
1. 마이바티스 프레임워크를 사용할 것임
2. 히카리 cp 를 사용해서 connection pool 기능을 사용할 것임
connection pool - 미리 DB 에 연결해 놓은 객체를 생성한뒤 연결 객체를 호출되는 곳에 빌려준다.
라이브러리 추가
HikariCP 라이브러리 검색 ( 3.3.1 버전 사용할 것임 ) >> 코드 복사 >> pom.xml 에 추가
Spring JDBC 검색 >> 아무 버전이나 가져온 뒤 pom.xml 에 붙여넣기 >> 버전 교체
MyBatis 라이브러리 설치 ( 버전 확인 후 설치 )
Spring 용 마이 MyBatis 도 라이브러리 설치 ( 버전 확인 후 설치 )
내 피씨의 오라클DB 버전 확인
오라클 DB 버전 11 버전 : ojdbc6
오라클 DB 버전 19 버전 이상 : ojdbc8
내 오라클 DB 버전과 동일한 버전의 라이브러리 선택 후 설치
pom.xml 저장하면 Maven Dependencies 에 추가한 내용들이 저장된 것 확인할 수 있음
라이브러리 설치 끝
DB 연결 설정
HikariCP 설정
HikariConfig.class 열기 >> 패키지이름과 class 이름 복사
root-context.xml 에 아까 복사한 [패키지이름].[클래스명] 을 class 에 입력 후 property 추가하여 해당 클래스의 변수인 username, password, jdbcUrl, driverClassName 의 값을 자신의 오라클 DB 설정 값으로 넣어준다
위에서 설정한 hikariConfig 빈을 매개변수로 생성자에 넣어서 HikariDataSource 클래스 빈을 ds 라는 이름으로 생성
마이바티스 설정
SqlSessionFactoryBean.class 열어서 패키지이름, 클래스 이름 저장
root-context.xml 에 마이바티스 관련된 빈 객체 저장 ( property 를 사용하여 dataSourse 변수에 위에서 설정한 ds 빈을 넣고 mapperLocations 변수에 src/main/resources/mapper/ 폴더 하위의 모든 폴더 내에 있는 Mapper.xml 로 끝나는 파일들을 설정해준다
memberMapper.xml 파일에 생성한 MemberDAO 인터페이스 파일을 등록
root-context.xml 작성
세팅 완료....
DB 연결 테스트
DAO 빈 객체가 정상적으로 연결되는지 확인 ( 메소드에 커서 후 Ctrl + F11 ) >> 정상 연결
DTO, DAO 작성
memberMapper.xml 에 insert 작성
DAO 테스트 코드 작성 >> 메소드에 커서 두고 Ctrl + F11 >> 초록색 바 ( 성공 )
추가한 내용 잘 적용되는지 sql developer 에서도 확인
위에서는 DAO 만 실행해서 코드를 진행시켰는데 이번엔 Service 에서 DTO 객체를 DAO 로 넘겨서 실행시킬때도 문제가 없는지 확인해볼 것임
Service 에 dao 에 dto 객체 전달하는 코드 작성
테스트 코드 실행 >> 성공 >> sql developer 에서도 확인
데이터 삭제하는 코드 테스트 할 것임 >> DAO 작성 >> memberMapper.xml 에 deleteUser 메소드에 대한 쿼리문 작성
테스트 메소드에 커서 둔 뒤 Ctrl + F11 하여 테스트 >> 성공 >> result 로 1 반환 ( 성공 )
Controller 로 요청을 받아 실행이 되는지 테스트
Controller ( Mock ) > Service > DAO 순으로 전체적인 테스트를 진행
Controller 작성 >> TestMock 클래스 파일 생성하여 Controller 의 접속 경로와 데이터 까지 받아서 테스트 진행 ( MockMvc 는 수동으로 import 해줘야 하므로 아래의 코드 넣어줘야 함 ) >> 메소드 클릭 후 실행