Skip to content

Commit 8a84535

Browse files
authored
refactor: 대학(추천, 좋아요) 통합 테스트 데이터 Fixture 메서드로 변경 (#313)
* refactor: 대학 좋아요 통합 테스트 데이터 Fixture 메서드로 변경 * refactor: 대학 추천 통합 테스트 데이터 Fixture 메서드로 변경
1 parent 5f1474a commit 8a84535

File tree

3 files changed

+84
-32
lines changed

3 files changed

+84
-32
lines changed

src/test/java/com/example/solidconnection/university/service/GeneralUniversityRecommendServiceTest.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package com.example.solidconnection.university.service;
22

33
import com.example.solidconnection.support.TestContainerSpringBootTest;
4-
import com.example.solidconnection.support.integration.BaseIntegrationTest;
54
import com.example.solidconnection.university.domain.UniversityInfoForApply;
5+
import com.example.solidconnection.university.fixture.UniversityInfoForApplyFixture;
6+
import org.junit.jupiter.api.BeforeEach;
67
import org.junit.jupiter.api.DisplayName;
78
import org.junit.jupiter.api.Test;
89
import org.springframework.beans.factory.annotation.Autowired;
@@ -14,20 +15,37 @@
1415
import static org.assertj.core.api.Assertions.assertThat;
1516
import static org.junit.jupiter.api.Assertions.assertAll;
1617

17-
@DisplayName("공통 추천 대학 서비스 테스트")
1818
@TestContainerSpringBootTest
19-
class GeneralUniversityRecommendServiceTest extends BaseIntegrationTest {
19+
@DisplayName("공통 추천 대학 서비스 테스트")
20+
class GeneralUniversityRecommendServiceTest {
2021

2122
@Autowired
2223
private GeneralUniversityRecommendService generalUniversityRecommendService;
2324

25+
@Autowired
26+
private UniversityInfoForApplyFixture universityInfoForApplyFixture;
27+
2428
@Value("${university.term}")
2529
private String term;
2630

31+
@BeforeEach
32+
void setUp() {
33+
universityInfoForApplyFixture.괌대학_A_지원_정보();
34+
universityInfoForApplyFixture.괌대학_B_지원_정보();
35+
universityInfoForApplyFixture.네바다주립대학_라스베이거스_지원_정보();
36+
universityInfoForApplyFixture.메모리얼대학_세인트존스_A_지원_정보();
37+
universityInfoForApplyFixture.서던덴마크대학교_지원_정보();
38+
universityInfoForApplyFixture.코펜하겐IT대학_지원_정보();
39+
universityInfoForApplyFixture.그라츠대학_지원_정보();
40+
universityInfoForApplyFixture.그라츠공과대학_지원_정보();
41+
universityInfoForApplyFixture.린츠_카톨릭대학_지원_정보();
42+
universityInfoForApplyFixture.메이지대학_지원_정보();
43+
generalUniversityRecommendService.init();
44+
}
45+
2746
@Test
2847
void 모집_시기의_대학들_중에서_랜덤하게_N개를_추천_목록으로_구성한다() {
2948
// given
30-
generalUniversityRecommendService.init();
3149
List<UniversityInfoForApply> universities = generalUniversityRecommendService.getRecommendUniversities();
3250

3351
// when & then

src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
import com.example.solidconnection.siteuser.domain.SiteUser;
55
import com.example.solidconnection.siteuser.repository.LikedUniversityRepository;
66
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
7-
import com.example.solidconnection.support.integration.BaseIntegrationTest;
7+
import com.example.solidconnection.support.TestContainerSpringBootTest;
88
import com.example.solidconnection.type.PreparationStatus;
99
import com.example.solidconnection.type.Role;
1010
import com.example.solidconnection.university.domain.LikedUniversity;
1111
import com.example.solidconnection.university.domain.UniversityInfoForApply;
1212
import com.example.solidconnection.university.dto.IsLikeResponse;
1313
import com.example.solidconnection.university.dto.LikeResultResponse;
14+
import com.example.solidconnection.university.fixture.UniversityInfoForApplyFixture;
15+
import org.junit.jupiter.api.BeforeEach;
1416
import org.junit.jupiter.api.DisplayName;
1517
import org.junit.jupiter.api.Nested;
1618
import org.junit.jupiter.api.Test;
@@ -25,8 +27,9 @@
2527
import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode;
2628
import static org.junit.jupiter.api.Assertions.assertAll;
2729

30+
@TestContainerSpringBootTest
2831
@DisplayName("대학교 좋아요 서비스 테스트")
29-
class UniversityLikeServiceTest extends BaseIntegrationTest {
32+
class UniversityLikeServiceTest {
3033

3134
@Autowired
3235
private UniversityLikeService universityLikeService;
@@ -37,14 +40,23 @@ class UniversityLikeServiceTest extends BaseIntegrationTest {
3740
@Autowired
3841
private SiteUserRepository siteUserRepository;
3942

43+
@Autowired
44+
private UniversityInfoForApplyFixture universityInfoForApplyFixture;
45+
46+
private SiteUser testUser;
47+
private UniversityInfoForApply 괌대학_A_지원_정보;
48+
49+
@BeforeEach
50+
void setUp() {
51+
testUser = createSiteUser();
52+
괌대학_A_지원_정보 = universityInfoForApplyFixture.괌대학_A_지원_정보();
53+
}
54+
4055
@Nested
4156
class 대학_좋아요를_등록한다 {
4257

4358
@Test
4459
void 성공적으로_좋아요를_등록한다() {
45-
// given
46-
SiteUser testUser = createSiteUser();
47-
4860
// when
4961
LikeResultResponse response = universityLikeService.likeUniversity(testUser, 괌대학_A_지원_정보.getId());
5062

@@ -60,7 +72,6 @@ class 대학_좋아요를_등록한다 {
6072
@Test
6173
void 이미_좋아요한_대학이면_예외_응답을_반환한다() {
6274
// given
63-
SiteUser testUser = createSiteUser();
6475
saveLikedUniversity(testUser, 괌대학_A_지원_정보);
6576

6677
// when & then
@@ -76,7 +87,6 @@ class 대학_좋아요를_취소한다 {
7687
@Test
7788
void 성공적으로_좋아요를_취소한다() {
7889
// given
79-
SiteUser testUser = createSiteUser();
8090
saveLikedUniversity(testUser, 괌대학_A_지원_정보);
8191

8292
// when
@@ -93,9 +103,6 @@ class 대학_좋아요를_취소한다 {
93103

94104
@Test
95105
void 좋아요하지_않은_대학이면_예외_응답을_반환한다() {
96-
// given
97-
SiteUser testUser = createSiteUser();
98-
99106
// when & then
100107
assertThatCode(() -> universityLikeService.cancelLikeUniversity(testUser, 괌대학_A_지원_정보.getId()))
101108
.isInstanceOf(CustomException.class)
@@ -106,7 +113,6 @@ class 대학_좋아요를_취소한다 {
106113
@Test
107114
void 존재하지_않는_대학_좋아요_시도하면_예외_응답을_반환한다() {
108115
// given
109-
SiteUser testUser = createSiteUser();
110116
Long invalidUniversityId = 9999L;
111117

112118
// when & then
@@ -118,7 +124,6 @@ class 대학_좋아요를_취소한다 {
118124
@Test
119125
void 좋아요한_대학인지_확인한다() {
120126
// given
121-
SiteUser testUser = createSiteUser();
122127
saveLikedUniversity(testUser, 괌대학_A_지원_정보);
123128

124129
// when
@@ -130,9 +135,6 @@ class 대학_좋아요를_취소한다 {
130135

131136
@Test
132137
void 좋아요하지_않은_대학인지_확인한다() {
133-
// given
134-
SiteUser testUser = createSiteUser();
135-
136138
// when
137139
IsLikeResponse response = universityLikeService.getIsLiked(testUser, 괌대학_A_지원_정보.getId());
138140

@@ -143,7 +145,6 @@ class 대학_좋아요를_취소한다 {
143145
@Test
144146
void 존재하지_않는_대학의_좋아요_여부를_조회하면_예외_응답을_반환한다() {
145147
// given
146-
SiteUser testUser = createSiteUser();
147148
Long invalidUniversityId = 9999L;
148149

149150
// when & then
@@ -152,6 +153,7 @@ class 대학_좋아요를_취소한다 {
152153
.hasMessage(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND.getMessage());
153154
}
154155

156+
// todo : 추후 Fixture로 대체 필요
155157
private SiteUser createSiteUser() {
156158
SiteUser siteUser = new SiteUser(
157159
"test@example.com",

src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
package com.example.solidconnection.university.service;
22

3+
import com.example.solidconnection.country.fixture.CountryFixture;
34
import com.example.solidconnection.entity.InterestedCountry;
45
import com.example.solidconnection.entity.InterestedRegion;
6+
import com.example.solidconnection.region.fixture.RegionFixture;
57
import com.example.solidconnection.repositories.InterestedCountyRepository;
68
import com.example.solidconnection.repositories.InterestedRegionRepository;
79
import com.example.solidconnection.siteuser.domain.SiteUser;
810
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
9-
import com.example.solidconnection.support.integration.BaseIntegrationTest;
11+
import com.example.solidconnection.support.TestContainerSpringBootTest;
1012
import com.example.solidconnection.type.PreparationStatus;
1113
import com.example.solidconnection.type.Role;
14+
import com.example.solidconnection.university.domain.UniversityInfoForApply;
1215
import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse;
1316
import com.example.solidconnection.university.dto.UniversityRecommendsResponse;
17+
import com.example.solidconnection.university.fixture.UniversityInfoForApplyFixture;
1418
import org.junit.jupiter.api.BeforeEach;
1519
import org.junit.jupiter.api.DisplayName;
1620
import org.junit.jupiter.api.Test;
@@ -21,8 +25,9 @@
2125
import static com.example.solidconnection.university.service.UniversityRecommendService.RECOMMEND_UNIVERSITY_NUM;
2226
import static org.assertj.core.api.Assertions.assertThat;
2327

28+
@TestContainerSpringBootTest
2429
@DisplayName("대학교 추천 서비스 테스트")
25-
class UniversityRecommendServiceTest extends BaseIntegrationTest {
30+
class UniversityRecommendServiceTest {
2631

2732
@Autowired
2833
private UniversityRecommendService universityRecommendService;
@@ -39,16 +44,47 @@ class UniversityRecommendServiceTest extends BaseIntegrationTest {
3944
@Autowired
4045
private GeneralUniversityRecommendService generalUniversityRecommendService;
4146

47+
@Autowired
48+
private RegionFixture regionFixture;
49+
50+
@Autowired
51+
private CountryFixture countryFixture;
52+
53+
@Autowired
54+
private UniversityInfoForApplyFixture universityInfoForApplyFixture;
55+
56+
private SiteUser testUser;
57+
private UniversityInfoForApply 괌대학_A_지원_정보;
58+
private UniversityInfoForApply 괌대학_B_지원_정보;
59+
private UniversityInfoForApply 네바다주립대학_라스베이거스_지원_정보;
60+
private UniversityInfoForApply 메모리얼대학_세인트존스_A_지원_정보;
61+
private UniversityInfoForApply 서던덴마크대학교_지원_정보;
62+
private UniversityInfoForApply 코펜하겐IT대학_지원_정보;
63+
private UniversityInfoForApply 그라츠대학_지원_정보;
64+
private UniversityInfoForApply 그라츠공과대학_지원_정보;
65+
private UniversityInfoForApply 린츠_카톨릭대학_지원_정보;
66+
private UniversityInfoForApply 메이지대학_지원_정보;
67+
4268
@BeforeEach
4369
void setUp() {
70+
testUser = createSiteUser();
71+
괌대학_A_지원_정보 = universityInfoForApplyFixture.괌대학_A_지원_정보();
72+
괌대학_B_지원_정보 = universityInfoForApplyFixture.괌대학_B_지원_정보();
73+
네바다주립대학_라스베이거스_지원_정보 = universityInfoForApplyFixture.네바다주립대학_라스베이거스_지원_정보();
74+
메모리얼대학_세인트존스_A_지원_정보 = universityInfoForApplyFixture.메모리얼대학_세인트존스_A_지원_정보();
75+
서던덴마크대학교_지원_정보 = universityInfoForApplyFixture.서던덴마크대학교_지원_정보();
76+
코펜하겐IT대학_지원_정보 = universityInfoForApplyFixture.코펜하겐IT대학_지원_정보();
77+
그라츠대학_지원_정보 = universityInfoForApplyFixture.그라츠대학_지원_정보();
78+
그라츠공과대학_지원_정보 = universityInfoForApplyFixture.그라츠공과대학_지원_정보();
79+
린츠_카톨릭대학_지원_정보 = universityInfoForApplyFixture.린츠_카톨릭대학_지원_정보();
80+
메이지대학_지원_정보 = universityInfoForApplyFixture.메이지대학_지원_정보();
4481
generalUniversityRecommendService.init();
4582
}
4683

4784
@Test
4885
void 관심_지역_설정한_사용자의_맞춤_추천_대학을_조회한다() {
4986
// given
50-
SiteUser testUser = createSiteUser();
51-
interestedRegionRepository.save(new InterestedRegion(testUser, 영미권));
87+
interestedRegionRepository.save(new InterestedRegion(testUser, regionFixture.영미권()));
5288

5389
// when
5490
UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(testUser);
@@ -67,8 +103,7 @@ void setUp() {
67103
@Test
68104
void 관심_국가_설정한_사용자의_맞춤_추천_대학을_조회한다() {
69105
// given
70-
SiteUser testUser = createSiteUser();
71-
interestedCountyRepository.save(new InterestedCountry(testUser, 덴마크));
106+
interestedCountyRepository.save(new InterestedCountry(testUser, countryFixture.덴마크()));
72107

73108
// when
74109
UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(testUser);
@@ -85,9 +120,8 @@ void setUp() {
85120
@Test
86121
void 관심_지역과_국가_모두_설정한_사용자의_맞춤_추천_대학을_조회한다() {
87122
// given
88-
SiteUser testUser = createSiteUser();
89-
interestedRegionRepository.save(new InterestedRegion(testUser, 영미권));
90-
interestedCountyRepository.save(new InterestedCountry(testUser, 덴마크));
123+
interestedRegionRepository.save(new InterestedRegion(testUser, regionFixture.영미권()));
124+
interestedCountyRepository.save(new InterestedCountry(testUser, countryFixture.덴마크()));
91125

92126
// when
93127
UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(testUser);
@@ -107,9 +141,6 @@ void setUp() {
107141

108142
@Test
109143
void 관심사_미설정_사용자는_일반_추천_대학을_조회한다() {
110-
// given
111-
SiteUser testUser = createSiteUser();
112-
113144
// when
114145
UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(testUser);
115146

@@ -138,6 +169,7 @@ void setUp() {
138169
);
139170
}
140171

172+
// todo : 추후 Fixture로 대체 필요
141173
private SiteUser createSiteUser() {
142174
SiteUser siteUser = new SiteUser(
143175
"test@example.com",

0 commit comments

Comments
 (0)