본문 바로가기

[IT]/SpringBoot7

[Spring Boot] 테스트 데이터 생성 (.sql 실행) 개요. 단위테스트, 통합테스트 코드를 작성하면서, 한 가지 의문점이 생겼다. 로컬 환경에서 테스트 할 때는 더미데이터를 직접 넣어둔 상태로 테스트를 진행했다.(혹은 테스트코드 앞단에 Rollback(false)로 하여 삽입) 하지만, sql파일을 프로젝트에 넣어두고 실행하는 것으로 더미데이터를 생성할 수 있다. 환경 Spring Boot 2.4.4 Junit5 h2 DB (In-memory) gradle dependency dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' i.. 2021. 4. 29.
[Spring Boot] 설정파일 암호화 (application.yml) 설정파일 암호화 보통 Spring 프로젝트를 진행하면 application.yml(.propertise)파일을 이용해 프로젝트 설정을 관리하게 되고, DB Connection 관련 부분도 다음과 같이 작성하게 된다. spring: output: ansi: enabled: always datasource: url: jdbc:mariadb://(서버주소):3306/(DB명) username: (id) password: (pw) driver-class-name: org.mariadb.jdbc.Driver jpa: hibernate: ddl-auto: none #create , create-drop , update , validate, none properties: hibernate: show_sql: true.. 2021. 4. 28.
[Spring Boot] Controller - Dto 유효성 검사 Controller 설정 @PostMapping("/users") @ApiOperation(value = "회원가입") public UserResponse joinUser(@Valid @RequestBody UserRequest request){ return userService.save(request); }위 코드는 @RestController로 선언된 Controller 클래스의 회원가입 메소드이다. @Valid 어노테이션을 추가하여 유효성 검사를 활성화 시킨다. Dto 설정 @Data @Builder @NoArgsConstructor @AllArgsConstructor(access = AccessLevel.PRIVATE) public class UserRequest { private Long id;.. 2021. 4. 19.
[Spring Boot] Junit5 테스트 순서 지정 테스트를 원하는 순서대로 실행하려면? @SpringBootTest @Transactional public class OrderingTest { @Test public void a_Test() throws Exception { System.out.println("A TEST!"); } @Test public void create_Test() throws Exception { System.out.println("create TEST!"); } @Test public void b_Test() throws Exception { System.out.println("B TEST!"); } @Test public void c_Test() throws Exception { System.out.println("creat.. 2021. 4. 18.
[Spring Boot] JPA metamodel must not be empty 에러 @WebMvcTest Controller 단위테스트를 위해 @WebMvcTest 어노테이션을 이용해서 테스트하던 중 만난 오류. 단위테스트 코드를 처음 작성해보는지라 버전문제나 설정에 문제가 있는줄 알았지만, 문제는 부트스트랩 클래스에 있었다. @SpringBootApplication @EnableJpaAuditing //이게 문제의 원흉 public class RunApplication { public static void main(String[] args) { SpringApplication.run(RunApplication.class,args); } @Bean public AuditorAware auditorProvider(){ return ()-> Optional.of(UUID.randomUUID.. 2021. 4. 16.
[Data JPA & Query DSL] Repository의 구현클래스 선정 규칙 @Autowired 의존성 주입 프로젝트 리팩토링을 하던 중, 한 가지 의문이 생겼다. @Autowired UserRepository userRepository; Controller나 Test 클래스에서 위와 같이 @Autowired 어노테이션으로 의존성을 주입받는다. 따라서 정확히 어떤 구현 클래스가 주입되는지 알 수 없다. 그렇다면, 인터페이스인 UserRepository가 Custom 인터페이스를 상속받고, Custom 인터페이스를 구현하는 클래스를 여러 개 생성하면, 어떤 클래스로 주입될까? UserRepositoryImpl클래스는 Custom인터페이스의 진짜 구현클래스고, ExampleImpl 클래스 역시 Custom인테페이스를 구현하지만 내부 구현 내용이 비어있는 깡통 클래스이다. 이 상황에서.. 2021. 4. 3.
728x90