•
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
복사