Backend
home
📝

엔티티의 테스트

build.gradle 설정
plugins { id 'java' id 'org.springframework.boot' version '3.2.9' id 'io.spring.dependency-management' version '1.1.6' } group = 'org.zerock' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' //테스트를 위해 추가 testCompileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' // 테스트를 위해 추가 testAnnotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() }
Java
복사
repository 테스트코드 정리
package org.zerock.apiserver.repository; import lombok.extern.log4j.Log4j2; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import org.zerock.apiserver.domain.Todo; import java.time.LocalDate; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest @Log4j2 class TodoRepositoryTest { @Autowired private TodoRepository todoRepository; @Test public void test1() { Assertions.assertNotNull(todoRepository); log.info(todoRepository.getClass().getName()); } @DisplayName("insert test") @Test public void testInsert() { // given (사전 준비) Todo todo = Todo.builder() .title("Title") .content("Content......") .dueDate(LocalDate.of(2024, 8, 28)) .build(); // when (테스트 진행할 행위) Todo result = todoRepository.save(todo); // then (행위에 대한 결과 검증) log.info(result); } @DisplayName("read test") @Test public void testRead() { // given (사전 준비) Long tno = 1L; // when (테스트 진행할 행위) Optional<Todo> result = todoRepository.findById(tno); Todo todo = result.orElseThrow(); // then (행위에 대한 결과 검증) log.info(todo); } @DisplayName("update test") @Transactional @Test public void testUpdate() { // given (사전 준비) Long tno = 1L; // when (테스트 진행할 행위) Optional<Todo> result = todoRepository.findById(tno); Todo todo = result.orElseThrow(); todo.setTitle("Update Title"); todo.setContent("updated content"); todo.setComplete(true); // then (행위에 대한 결과 검증) todoRepository.save(todo); } }
Java
복사