Side Project/To do List API9 TodoController 테스트 코드 create() 테스트 코드 @Test void create() throws Exception{ // Mock 객체를 사용하여 todoService.add 호출 시 예상된 TodoEntity를 반환하도록 설정 when(this.todoService.add(any(TodoRequest.class))).then((i) -> { TodoRequest request = i.getArgument(0, TodoRequest.class); return new TodoEntity(this.expected.getId(), request.getTitle(), this.expected.getOrder(), this.expected.getCompleted()); }); // 테스트를 위한 TodoRequest 객체 생성 및 .. 2024. 2. 3. TodoService 테스트 코드 ADD() 테스트 @Test void add() { // Mock 객체를 사용하여 todoRepository.save(any(TodoEntity.class)) 호출 시 첫 번째 인자를 반환하도록 설정 when(this.todoRepository.save(any(TodoEntity.class))).then(AdditionalAnswers.returnsFirstArg()); // 테스트를 위한 TodoRequest 객체 생성 TodoRequest expected = new TodoRequest(); expected.setTitle("Test Title"); // TodoService의 add 메서드 호출 TodoEntity actual = this.todoService.add(expected); // 반환된.. 2024. 2. 3. Front Test 결과 todos에 할 일을 등록 할 때 마다 CREATE 로그를 확인 할 수 있고, 삭제 및 변경도 정상적으로 작동한다. 2024. 2. 3. 컨트롤러 구현 컨트롤러 구현 package com.example.controller; import java.util.List; import java.util.stream.Collectors; import org.springframework.http.ResponseEntity; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframewor.. 2024. 2. 3. 서비스 코드 구현 서비스 코드 구현 package com.example.service; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.server.ResponseStatusException; import com.example.model.TodoEntity; import com.example.model.TodoRequest; import com.example.repository.TodoRepository; import lombok.AllArgsConstructor; @Service @AllArgsConstructo.. 2024. 2. 3. repository 구현 repository 구현 package com.example.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface TodoRepository extends JpaRepository { } @Repository: repository 인터페이스가 데이터 액세스 계층에서 repository 역할을 하고 해당 인터페이스가 스프링 빈으로 등록되어 DI(Dependency Injection)를 받을 수 있다. JpaRepository : 스프링 데이터 JPA에서 제공하는 인터페이스로, JPA를 사용.. 2024. 2. 2. 모델 구현 모델 구현 TodoEntity : 데이터베이스와 데이터를 주고 받기 위한 Entitiy 클래스 package com.example.model; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @Entity @NoArgsConstructor @AllArgsCon.. 2024. 2. 2. 환경설정 및 세팅(개발 환경) 환경설정 및 세팅(개발 환경) 운영체제 : Window 통합 개발 환경(IDE) : IntelliJ JDK 버전 : JDK 17 Spring Boot 버전 : 3.2.2 데이터 베이스 : H2 Database 빌드 툴 : Gradle ORM : JPA 2024. 2. 2. 이전 1 2 다음