일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- 문자열함수
- 시스템프로그래밍
- IT
- Django
- AWS
- kafkaconsumer
- SpringSecurity
- jwt
- 공부기록
- 기록
- github
- 선택정렬
- codingtest
- kafka
- 회고록
- 알고리즘
- 코딩테스트
- 코테
- git
- 백준
- 한이음
- c
- testcode
- 트러블슈팅
- 자료구조
- 기술블로그
- 자바
- 협업도구
- 문자열압축
Archives
- Today
- Total
신뇽이 되어보자
[Spring] Test 폴더 생성하고 Junit을 사용하여 TestCode 작성하기 본문
728x90

초록색부분이 있어야 테스트 코드를 작성하고 실행할 수 있는데
처음에 이 부분이 없었다.
처음에는 당황해서 프로젝트를 새로 다시 만들어야하나...?라는 생각을 했다.
하지만 방법이 다 있더랍니다..?ㅎㅎ
그래서 오늘의 기록이 시작.
Test 폴더 만드는 방법
1. 최상위 폴더에서 디렉터리 test 생성


2. 테스트 폴더를 지정해준다. 최상위 폴더에서 마우스 우클릭 > Open Module Settings
폴더 구조 안의 test클릭 > Mark as 의 Tests클릭
하면 가장 오른쪽에 초록색으로 Test Source Folders로 test폴더가 지정된 것을 확인할 수 있다.


테스트 코드 작성하는 법
1. 테스트를 하고자 하는 Multiplier 클래스이 클래스명 위에서 우클릭하여 Go to - Test 클릭

Create New Test 클릭

Testing library: JUnit4 선택 > 테스트하고 싶은 메서드 클릭 후 OK버튼 클릭

내가 테스트할 DAO 코드
@Repository
public class MybatisMypageDao implements MypageDao {
//MypageDao 재정의 및 구현
@Autowired //의존성 주입을 해주지 않으면, 즉(@Autowired)를 해주지 않으면 NullPointerException에러가 나니 주의!!!!
private MyPageMapper myPageMapper;
@Transactional //Transactional 어노테이션을 정의해주어 트랜잭션 관리를 해준다.
//이 어노테이션을 정의해주지 않으면 변경이 발생할 때 DB에 반영이 안될 수도 있음. 해주는 것이 좋습니다.!!!!!
//이 어노테이션은 변경을 트랜잭션으로 묶어서 커밋하거나 롤백하는 데 사용됩니다!!!
public User getUserById(Long userId) throws DataAccessException {
return myPageMapper.getUserById(userId);
}
@Transactional
public int updateNickname(String userId, String newNickname) throws DataAccessException {
System.out.println("MybatisMypageDao - updateNickname - userId: " + userId + ", newNickname: " + newNickname);
return myPageMapper.updateUserNickname(userId, newNickname);
}
}
테스트 코드
@RunWith(SpringJUnit4ClassRunner.class) //Unit 프레임워크에게 사용할 테스트 러너(runner)를 지정하는 데 사용
@ContextConfiguration(locations = "file:src/main/resources/dataAccessContext-mybatis.xml")
//테스트 실행에 필요한 애플리케이션 컨텍스트를 구성하는 방법을 지정
//이렇게 설정된 테스트 클래스는 스프링 애플리케이션 컨텍스트를 로드하고, dataAccessContext-mybatis.xml 파일에서 정의된 빈들을 테스트에서 사용할 수 있게 됨.
public class MypageTest {
@Autowired
private MypageDao mypageDao;
@Autowired
private MybatisMypageDao mybatisMypageDao;
@Test
public void testUser() throws Exception{
// 사용자 조회
User user = mypageDao.getUserById(2L); // 예시: ID가 2인 사용자를 가져오는 메서드
// 사용자가 null인지 확인
assertNotNull(user);
System.out.println("유저 닉네임:"+ user.getId()+user.getUser_id() +user.getNickname());
// 사용자의 닉네임 변경
mybatisMypageDao.updateNickname(user.getUser_id(),"ChangeNickname~~~!!");
User user1 = mypageDao.getUserById(2L); // 콘솔에 출력하려면 새로 객체를 다시 만들어줘야함!!
// 변경된 닉네임 출력
System.out.println("변경된 유저닉네임:"+ user1.getNickname());
}
}
결과
변경 전 USER_TABLE 데이터

테스트 성공했다고 알려주는 콘솔창

DB에 적용된 결과 화면

SQL Developer에서 확인한 데이터 결과

적용이 잘 된 것을 확인할 수 있다!
다음에는 실수하기 좋은 포인트에 대해 기록해보도록 하겠다.
그럼 끝!
728x90
'Spring' 카테고리의 다른 글
[Spring] Spring Security + JWT 사용자 인증(1) - 로그인 & 토큰 발급 (0) | 2025.01.31 |
---|---|
[Spring] Spring Security란? (1) | 2025.01.30 |
[Spring] @RequiredArgsConstructor (0) | 2025.01.14 |
[Spring] DAO Test 하다가 실수하기 좋은 포인트 (0) | 2024.04.13 |
[IntelliJ] 인텔리제이 Spring과 DB연동하기(Oracle) (0) | 2024.04.13 |