@@ -3,13 +3,19 @@
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.jupiter.api.Assertions.assertAll;
+import static reviewme.fixture.ReviewFixture.비회원_작성_리뷰;
+import static reviewme.fixture.ReviewGroupFixture.회원_지정_리뷰_그룹;
 
+import java.util.List;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
-import reviewme.reviewgroup.service.exception.ReviewGroupNotFoundByReviewRequestCodeException;
+import reviewme.review.repository.ReviewRepository;
 import reviewme.reviewgroup.domain.ReviewGroup;
 import reviewme.reviewgroup.repository.ReviewGroupRepository;
+import reviewme.reviewgroup.service.dto.ReviewGroupPageElementResponse;
+import reviewme.reviewgroup.service.dto.ReviewGroupPageResponse;
 import reviewme.reviewgroup.service.dto.ReviewGroupSummaryResponse;
+import reviewme.reviewgroup.service.exception.ReviewGroupNotFoundByReviewRequestCodeException;
 import reviewme.support.ServiceTest;
 
 @ServiceTest
@@ -21,8 +27,11 @@ class ReviewGroupLookupServiceTest {
     @Autowired
     ReviewGroupRepository reviewGroupRepository;
 
+    @Autowired
+    ReviewRepository reviewRepository;
+
     @Test
-    void 리뷰_요청_코드로_리뷰_그룹을_조회한다() {
+    void 리뷰_요약_조회_시_리뷰_요청_코드로_리뷰_그룹을_조회한다() {
         // given
         ReviewGroup reviewGroup = reviewGroupRepository.save(new ReviewGroup(
                 1L,
@@ -45,9 +54,46 @@ class ReviewGroupLookupServiceTest {
     }
 
     @Test
-    void 리뷰_요청_코드에_대한_리뷰_그룹이_존재하지_않을_경우_예외가_발생한다() {
+    void 리뷰_요약_조회_시_리뷰_요청_코드에_대한_리뷰_그룹이_존재하지_않을_경우_예외가_발생한다() {
         // given, when, then
         assertThatThrownBy(() -> reviewGroupLookupService.getReviewGroupSummary("reviewRequestCode"))
                 .isInstanceOf(ReviewGroupNotFoundByReviewRequestCodeException.class);
     }
+
+    @Test
+    void 회원에게_등록된_리뷰_그룹을_페이지네이션을_적용하여_반환한다() {
+        // given - 회원 id 설정
+        long memberId = 1L;
+
+        // given - 리뷰 그룹 등록
+        ReviewGroup reviewGroup1 = reviewGroupRepository.save(회원_지정_리뷰_그룹(memberId));
+        ReviewGroup reviewGroup2 = reviewGroupRepository.save(회원_지정_리뷰_그룹(memberId));
+        ReviewGroup reviewGroup3 = reviewGroupRepository.save(회원_지정_리뷰_그룹(memberId));
+        ReviewGroup reviewGroup4 = reviewGroupRepository.save(회원_지정_리뷰_그룹(memberId));
+        ReviewGroup reviewGroup5 = reviewGroupRepository.save(회원_지정_리뷰_그룹(memberId));
+
+        // given - 리뷰 그룹에 리뷰 등록
+        reviewRepository.save(비회원_작성_리뷰(reviewGroup2.getTemplateId(), reviewGroup2.getId(), List.of()));
+
+        reviewRepository.save(비회원_작성_리뷰(reviewGroup3.getTemplateId(), reviewGroup3.getId(), List.of()));
+        reviewRepository.save(비회원_작성_리뷰(reviewGroup3.getTemplateId(), reviewGroup3.getId(), List.of()));
+
+        // given - 페이지네이션 설정
+        long lastReviewGroupId = reviewGroup4.getId();
+        int size = 2;
+
+        // when
+        ReviewGroupPageResponse response = reviewGroupLookupService.getReviewGroupsByMember(
+                lastReviewGroupId, size, memberId);
+
+        // then
+        assertAll(
+                () -> assertThat(response.lastReviewGroupId()).isEqualTo(reviewGroup2.getId()),
+                () -> assertThat(response.isLastPage()).isFalse(),
+                () -> assertThat(response.reviewGroups()).extracting(ReviewGroupPageElementResponse::reviewGroupId)
+                        .containsExactly(reviewGroup3.getId(), reviewGroup2.getId()),
+                () -> assertThat(response.reviewGroups()).extracting(ReviewGroupPageElementResponse::reviewCount)
+                        .containsExactly(2L, 1L)
+        );
+    }
 }

리뷰: 의미 단위 개행해주세용~
아루가 왜 그렇게 의미 단위 개행을 해달라는지 알겠네요 ㅎㅎ
코드를 읽다가 과속 방지턱마냥 덜컹 하는 느낌이랄까!!