π 곡λΆνκ² λ κ³κΈ°
κΈ°λ₯μ ꡬννκ³ μ€νμμΌλ³Ό λλ§λ€ λ°μ΄ν°κ°μ νλμ© λ£λ κ²μ λΉν¨μ¨μ μΈ μΌμ΄λ€. νΉν λ§μ μμ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ κ³Όμ μ ν μ€νΈ ν΄μΌν λλ λ§ν κ²λ μμ κ²μ΄λ€. ν μ€νΈ μΌμ΄μ€λ₯Ό λ§λλ μ¬λ¬κ°μ§ λ°©λ²μ μ 리ν΄λ³΄κ³ μ νλ€.

1οΈβ£ Spring Test νμ©
test μ€ νλλ‘ λλμ λ°μ΄ν°λ₯Ό μμ±νλ λ°©λ²μ΄ μμ μ μλ€.
@Test
@Rollback(false) // ν
μ€νΈ ν DB λ³κ²½μ reset νμ§ μκ³ μ μ§
void λλμ_λ°μ΄ν°_μμ±() {
for (int i=1; i<=100; i++) {
Question q = new Question();
q.setSubject("μ λͺ© %d".formatted(i));
q.setContent("λ΄μ© %d".formatted(i));
q.setCreateDate(LocalDateTime.now());
questionRepository.save(q);
}
}
@Rollback μ κ²½μ° μ¬λ¬ κ°μ ν μ€νΈλ₯Ό λμμ μ€νν λ μμ ν μ€νΈλ‘ μΈν DB λ³νκ° λ€μ μ§νν ν μ€νΈμ μν₯μ μ£Όμ§ μλλ‘ μ΄κΈ°ν μν€λ μ΄λ Έν μ΄μ μΈλ° default κ°μ΄ True μ΄λ―λ‘ ν μ€νΈ μΌμ΄μ€ μμ±μ μν΄μλ false λ‘ ν΄λμ΄μΌνλ€.
2οΈβ£ CommandLineRunner (λλ ApplicationRunner) μΈν°νμ΄μ€ νμ©
μ λ μΈν°νμ΄κ° μ΄λ€ μΈν°νμ΄μ€μΈμ§ κΆκΈνλ€λ©΄ 맨 μλ μ°Έκ³ ννΈμ μλ κΈμ μ½μ΄λ³΄λ©΄ μ’μ κ² κ°λ€.
β CommandLineRunner νμ©
@Configuration
public class DevInitData {
@Bean
CommandLineRunner init(QuestionRepository questionRepository) {
return args -> {
for (int i=1; i<=100; i++) {
// Question.builder() λ₯Ό μ¬μ©νκΈ°μν΄μλ Question ν΄λμ€μ @Builder μ΄λ
Έν
μ΄μ
μ΄ μΆκ°λμ΄μμ΄μΌνλ€.
questionRepository.save(Question.builder()
.subject("μ λͺ© %d".formatted(i))
.content("λ΄μ© %d".formatted(i))
.createDate(LocalDateTime.now())
.build());
}
};
}
}
β‘ ApplicationRunner νμ©
CommandLineRunner μ λΉμ·νμ§λ§ μ’ λ μ΅κ·Όμ λ§λ€μ΄μ‘λ€. μ½κ°μ μ°¨μ΄μ μ μκ² μ§λ§ μ¬κΈ°μλ ν¬κ² λ€λ₯΄μ§ μμΌλ―λ‘ κ°λ¨νκ² μ 리νκ³ λμ΄κ°λλ‘ νμ.
@Configuration
public class DevInitData {
@Bean
ApplicationRunner init(QuestionRepository questionRepository) {
// (μλ΅)
}
}
π μ°Έκ³
(1) CommandLineRunner μ ApllicatioRunner: https://jeong-pro.tistory.com/206
μ€νλ§ λΆνΈ μ ν리μΌμ΄μ μμ μ΄κΈ°ν μ½λλ₯Ό λ£λ 3κ°μ§ λ°©λ² (by ν λΉλ)
μ€νλ§ λΆνΈμμ μ΄κΈ°ν μ½λλ₯Ό λ£λ 3κ°μ§ λ°©λ² μ΄ ν¬μ€νΈλ ν λΉλμ μ νλΈ κ°μλ₯Ό λ³΄κ³ λ΄μ©μ μ 리ν ν¬μ€νΈμ λλ€. (μΆμ² : https://www.youtube.com/watch?v=f017PD5BIEc) μμ μμμ 보면μ κ°μ΄ 곡
jeong-pro.tistory.com
'Spring Boot πΏ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| (MyBatis) Service μ Mapper/Repository μ κ΄κ³ (feat. @Mapper, @Select, xml νμΌ) (0) | 2022.11.01 |
|---|---|
| (JPA) @ManyToMany μ @ManyToOne μ μ°¨μ΄ (0) | 2022.10.26 |
| (Spring Boot) @Valid μ ν¨μ± μ²λ¦¬ νμ© (feat. BindingResult) (0) | 2022.10.19 |
| (Spring) DTO μμ Entity λ³ν ν ν μ΄λΈ μ μ₯ (ModelMapper νμ©) (0) | 2022.10.14 |
| (Spring) Entity μμ DTO λ³ν ν μ¬μ© (0) | 2022.10.13 |