Skip to content

Commit f062817

Browse files
authored
[Test] 생성 시각에 의한 테스트 개선
2 parents c58bb6d + 684fecd commit f062817

File tree

11 files changed

+75
-20
lines changed

11 files changed

+75
-20
lines changed

src/main/java/eatda/domain/AuditingEntity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ public abstract class AuditingEntity {
1515

1616
@PrePersist
1717
protected void onCreate() {
18-
this.createdAt = LocalDateTime.now();
18+
if (createdAt == null) {
19+
this.createdAt = LocalDateTime.now();
20+
}
1921
}
2022
}

src/test/java/eatda/controller/article/ArticleControllerTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import static org.assertj.core.api.Assertions.assertThat;
44

55
import eatda.controller.BaseControllerTest;
6-
import eatda.domain.article.Article;
6+
import java.time.LocalDateTime;
77
import org.junit.jupiter.api.Nested;
88
import org.junit.jupiter.api.Test;
99

@@ -14,8 +14,9 @@ class GetArticles {
1414

1515
@Test
1616
void 가게의_담긴_이야기_목록을_조회할_수_있다() {
17-
Article article1 = articleGenerator.generate("국밥의 모든 것");
18-
Article article2 = articleGenerator.generate("순대국의 진실");
17+
LocalDateTime startAt = LocalDateTime.of(2023, 10, 1, 0, 0);
18+
articleGenerator.generate("국밥의 모든 것", startAt);
19+
articleGenerator.generate("순대국의 진실", startAt.plusHours(1));
1920

2021
ArticlesResponse response = given()
2122
.queryParam("size", 3)

src/test/java/eatda/controller/store/CheerControllerTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import eatda.domain.store.Store;
1010
import eatda.util.ImageUtils;
1111
import eatda.util.MappingUtils;
12+
import java.time.LocalDateTime;
1213
import org.junit.jupiter.api.Nested;
1314
import org.junit.jupiter.api.Test;
1415
import org.springframework.http.HttpHeaders;
@@ -64,9 +65,10 @@ class GetCheers {
6465
Member member = memberGenerator.generateRegisteredMember("nickname", "[email protected]", "123", "01011111111");
6566
Store store1 = storeGenerator.generate("111", "서울시 노원구 월계3동 123-45");
6667
Store store2 = storeGenerator.generate("222", "서울시 성북구 석관동 123-45");
67-
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1);
68-
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1);
69-
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2);
68+
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
69+
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1, startAt);
70+
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1, startAt.plusHours(1));
71+
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2, startAt.plusHours(2));
7072

7173
CheersResponse response = given()
7274
.when()

src/test/java/eatda/controller/store/StoreControllerTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import eatda.controller.BaseControllerTest;
77
import eatda.domain.member.Member;
88
import eatda.domain.store.Store;
9+
import java.time.LocalDateTime;
910
import org.junit.jupiter.api.Nested;
1011
import org.junit.jupiter.api.Test;
1112
import org.springframework.http.HttpHeaders;
@@ -44,9 +45,10 @@ class GetStores {
4445
@Test
4546
void 음식점_목록을_최신순으로_조회한다() {
4647
Member member = memberGenerator.generate("111");
47-
Store store1 = storeGenerator.generate("111", "서울 강남구 대치동 896-33");
48-
Store store2 = storeGenerator.generate("222", "서울 강남구 대치동 896-34");
49-
Store store3 = storeGenerator.generate("333", "서울 강남구 대치동 896-35");
48+
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
49+
Store store1 = storeGenerator.generate("111", "서울 강남구 대치동 896-33", startAt);
50+
Store store2 = storeGenerator.generate("222", "서울 강남구 대치동 896-34", startAt.plusHours(1));
51+
Store store3 = storeGenerator.generate("333", "서울 강남구 대치동 896-35", startAt.plusHours(2));
5052
cheerGenerator.generateCommon(member, store1, "image-key-1");
5153
cheerGenerator.generateCommon(member, store2, "image-key-2");
5254
cheerGenerator.generateCommon(member, store3, "image-key-3");

src/test/java/eatda/fixture/ArticleGenerator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import eatda.domain.ImageKey;
44
import eatda.domain.article.Article;
55
import eatda.repository.article.ArticleRepository;
6+
import eatda.util.DomainUtils;
7+
import java.time.LocalDateTime;
68
import org.springframework.stereotype.Component;
79

810
@Component
@@ -27,6 +29,12 @@ public Article generate(String title) {
2729
return generate(title, DEFAULT_SUBTITLE);
2830
}
2931

32+
public Article generate(String title, LocalDateTime createdAt) {
33+
Article article = generate(title, DEFAULT_SUBTITLE);
34+
DomainUtils.setCreatedAt(article, createdAt);
35+
return articleRepository.save(article);
36+
}
37+
3038
public Article generate(String title, String subtitle) {
3139
return generate(title, subtitle, DEFAULT_URL);
3240
}

src/test/java/eatda/fixture/CheerGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import eatda.domain.store.Cheer;
66
import eatda.domain.store.Store;
77
import eatda.repository.store.CheerRepository;
8+
import eatda.util.DomainUtils;
9+
import java.time.LocalDateTime;
810
import org.springframework.stereotype.Component;
911

1012
@Component
@@ -19,8 +21,9 @@ public CheerGenerator(CheerRepository cheerRepository) {
1921
this.cheerRepository = cheerRepository;
2022
}
2123

22-
public Cheer generateAdmin(Member member, Store store) {
24+
public Cheer generateAdmin(Member member, Store store, LocalDateTime createdAt) {
2325
Cheer cheer = new Cheer(member, store, DEFAULT_DESCRIPTION, new ImageKey(DEFAULT_IMAGE_KEY), true);
26+
DomainUtils.setCreatedAt(cheer, createdAt);
2427
return cheerRepository.save(cheer);
2528
}
2629

src/test/java/eatda/fixture/StoreGenerator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import eatda.domain.store.Store;
44
import eatda.domain.store.StoreCategory;
55
import eatda.repository.store.StoreRepository;
6+
import eatda.util.DomainUtils;
7+
import java.time.LocalDateTime;
68
import org.springframework.stereotype.Component;
79

810
@Component
@@ -37,4 +39,10 @@ public Store generate(String kakaoId, String lotNumberAddress) {
3739
.build();
3840
return storeRepository.save(store);
3941
}
42+
43+
public Store generate(String kakaoId, String lotNumberAddress, LocalDateTime createdAt) {
44+
Store store = generate(kakaoId, lotNumberAddress);
45+
DomainUtils.setCreatedAt(store, createdAt);
46+
return storeRepository.save(store);
47+
}
4048
}

src/test/java/eatda/service/article/ArticleServiceTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import eatda.controller.article.ArticleResponse;
66
import eatda.service.BaseServiceTest;
7-
import java.util.stream.LongStream;
7+
import java.time.LocalDateTime;
88
import org.junit.jupiter.api.Nested;
99
import org.junit.jupiter.api.Test;
1010
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,8 +19,12 @@ class GetAllArticles {
1919

2020
@Test
2121
void 가게의_담긴_이야기를_최신순으로_조회할_수_있다() {
22-
LongStream.rangeClosed(1, 5)
23-
.forEach(i -> articleGenerator.generate("아티클 제목 " + i));
22+
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 12, 0, 0);
23+
articleGenerator.generate("아티클 제목 1", startAt);
24+
articleGenerator.generate("아티클 제목 2", startAt.plusHours(1));
25+
articleGenerator.generate("아티클 제목 3", startAt.plusHours(2));
26+
articleGenerator.generate("아티클 제목 4", startAt.plusHours(3));
27+
articleGenerator.generate("아티클 제목 5", startAt.plusHours(4));
2428

2529
var response = articleService.getAllArticles(3);
2630

src/test/java/eatda/service/store/CheerServiceTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import eatda.exception.BusinessErrorCode;
1818
import eatda.exception.BusinessException;
1919
import eatda.service.BaseServiceTest;
20+
import java.time.LocalDateTime;
2021
import java.util.List;
2122
import org.junit.jupiter.api.BeforeEach;
2223
import org.junit.jupiter.api.Nested;
@@ -135,9 +136,10 @@ class GetCheers {
135136
Member member = memberGenerator.generate("123");
136137
Store store1 = storeGenerator.generate("123", "서울시 강남구 역삼동 123-45");
137138
Store store2 = storeGenerator.generate("456", "서울시 성북구 석관동 123-45");
138-
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1);
139-
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1);
140-
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2);
139+
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
140+
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1, startAt);
141+
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1, startAt.plusHours(1));
142+
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2, startAt.plusHours(2));
141143

142144
CheersResponse response = cheerService.getCheers(2);
143145

src/test/java/eatda/service/store/StoreServiceTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import eatda.exception.BusinessErrorCode;
1515
import eatda.exception.BusinessException;
1616
import eatda.service.BaseServiceTest;
17+
import java.time.LocalDateTime;
1718
import java.util.List;
1819
import org.junit.jupiter.api.Nested;
1920
import org.junit.jupiter.api.Test;
@@ -60,11 +61,12 @@ class GetStores {
6061
@Test
6162
void 음식점_목록을_최신순으로_조회한다() {
6263
Member member = memberGenerator.generate("111");
63-
Store store1 = storeGenerator.generate("농민백암순대", "서울 강남구 대치동 896-33");
64+
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
65+
Store store1 = storeGenerator.generate("농민백암순대", "서울 강남구 대치동 896-33", startAt);
66+
Store store2 = storeGenerator.generate("석관동떡볶이", "서울 성북구 석관동 123-45", startAt.plusHours(1));
67+
Store store3 = storeGenerator.generate("강남순대국", "서울 강남구 역삼동 678-90", startAt.plusHours(2));
6468
cheerGenerator.generateCommon(member, store1, "image-key-1");
65-
Store store2 = storeGenerator.generate("석관동떡볶이", "서울 성북구 석관동 123-45");
6669
cheerGenerator.generateCommon(member, store2, "image-key-2");
67-
Store store3 = storeGenerator.generate("강남순대국", "서울 강남구 역삼동 678-90");
6870
cheerGenerator.generateCommon(member, store3, "image-key-3");
6971

7072
int size = 2;

0 commit comments

Comments
 (0)