SpringBoot(JPA,Gradle)
[SpringBoot] CRUD 단위 테스트
에띠
2022. 6. 22. 11:37
728x90
DI(Dependency Injection)
- 의존 관계 주입이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라 주입 받아 사용하는 방법(new 연산자를 이용해서 객체를 생성하는 것과 비슷)
@Autowired
- 필요한 의존 객체의 "타입"에 해당하는 빈을 찾아 주입
생성자
setter
필드
Day2ApplicationTests 공유 범위 public으로 변경.
src > main > test > java > day2 패키지 > repository 패키지 생성 후 Day2ApplicationTests 클래스 상속받은 테스트 클래스 생성
[AdminUserRepositoryTest 클래스]
package com.etty.day2.repository;
import com.etty.day2.Day2ApplicationTests;
import com.etty.day2.model.entity.AdminUser;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.LocalDateTime;
public class AdminUserRepositoryTest extends Day2ApplicationTests {
@Autowired // 의존성 주입
private AdminUserRepository adminUserRepository;
// 데이터 삽입
@Test
public void create() {
AdminUser adminUser = AdminUser.builder().userid("apple")
.userpw("1111").name("김사과").status("사용중")
.regDate(LocalDateTime.now()).build();
// repository에 저장된 adminUser를 newAdminUser에 저장 후 사용
AdminUser newAdminUser = adminUserRepository.save(adminUser);
}
// 데이터 수정
@Test
public void update() {
Optional<AdminUser> adminUser = adminUserRepository.findByUserid("apple");
adminUser.ifPresent(
selectAdminUser -> {
selectAdminUser.setLastLogin(LocalDateTime.now());
selectAdminUser.setUserpw("0000");
adminUserRepository.save(selectAdminUser);
}
);
}
// 데이터 삭제
@Test
public void delete() {
Optional<AdminUser> adminUser = adminUserRepository.findByUserid("apple");
adminUser.ifPresent(
selectAdminUser -> {
adminUserRepository.delete(selectAdminUser);
}
);
}
}
728x90