메모리 DB를 사용한 스프링 부트 테스트
Spring Boot을 사용하여 Spring 웹 프로젝트를 만들었습니다.테스트에 관한 실천을 이해하고 싶다.초기 schema.sql을 사용하는 junit에 hsql 또는 h2와 같은 메모리 내장 데이터베이스가 필요합니다.메인 어플리케이션에서는 mysql 또는 oracle이라고 할 수 있습니다.
Spring Boot 이외의 프로젝트에서는 보통 웹 어플리케이션에서 참조되는 applicationcontext.xml이 별도로 존재하며 테스트에는 applicationContext-text.xml을 사용합니다.
Spring Boot에서는 모든 것이 자동으로 생성되고 Spring Boot도 오피니언이 됩니다.Junits의 경우 메모리 DB에 내장되어 있고 어플리케이션의 경우 MySQL과 같은 외부 DB를 사용하여 설정하는 방법을 알고 싶습니다.
생각할 수 있는 해결책 중 하나는 프로파일을 사용하는 것입니다.application.properties 및 application-test.properties의 2가지 속성을 지정합니다.시험 프로파일을 사용해서 내 유니트를 만들죠
제가 취해야 할 접근법에 대한 추천 사항.
프로파일은 실제로 권장되는 접근법입니다.메모리 내 실장을 디폴트 프로파일로 하는 것이 좋습니다(실제 데이터를 변경하지 않기 때문에 다른 사람이 실수로 실제 데이터베이스에 대해 실행했을 경우에 대비하여 디폴트로 하는 것이 좋습니다).개인적으로는 모든 외부 구성을 1개로 묶는 것을 선호합니다.application.yml파일, 하지만 그건 정말 당신에게 달렸어외부 설정에서는, 유효한 드라이버 클래스와 URL 를 입력할 필요가 있습니다.
spring:
datasource:
driverClassName: org.h2.Driver
url: jdbc:h2:mem:test;MODE=PostgreSQL
schema: classpath:/schema.sql
---
spring:
profiles: local
datasource:
url: jdbc:postgresql://localhost/test
username: root
password: changeme
driverClassName: org.postgresql.Driver
schema:
(H2는 postgres 호환모드가 있기 때문에 postgres를 생산하기 위한 보완으로 매우 좋습니다.)
언급URL : https://stackoverflow.com/questions/19603324/spring-boot-testing-using-in-memory-db
'programing' 카테고리의 다른 글
| Spring Rest 컨트롤러의 부분 업데이트에 대한 null 값과 제공되지 않은 값을 구별하는 방법 (0) | 2023.03.26 |
|---|---|
| 컴포넌트로부터의 윈도 이벤트 청취에 관한 React.js 베스트 프랙티스 (0) | 2023.03.26 |
| JSON 피드에 값이 존재하는지 확인하는 더 나은 방법 (0) | 2023.03.26 |
| 스프링 부트에 여러 크로스 오리진 URL 추가 (0) | 2023.03.26 |
| 각도 부트스트랩 날짜 선택기 날짜 형식이 ng-model 값 형식을 지정하지 않음 (0) | 2023.03.26 |