Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ 숨김 및 신고 테스트 추가 및 기존 테스트 리팩토링 #73

Merged
merged 15 commits into from
May 19, 2024

Conversation

BangDori
Copy link
Collaborator

@BangDori BangDori commented May 18, 2024

작업 이유


작업 사항

1️⃣ Mutation 응답 데이터 반환

  • 테스트 코드로 인해 기존의 코드가 수정되는 것을 지양하기 위해, 기존의 코드가 전혀 영향을 받지 않는 선에서 응답 데이터를 반환하여 테스트가 용이하도록 하였습니다.
export const useMutationHooks = () => {
  const queryClient = useQueryClient();

  const {
    data, // ✨응답 데이터 반환 추가
    mutate: handleBookmarkFeed,
    isPending,
  } = useMutation({
    mutationFn
  });

  return { data, handleBookmarkFeed, isPending };
};

2️⃣ 테스트 환경 설정 수정

이전에 발생하였던 React Query와 관련한 이슈를 추적한 결과 API 인터셉터가 등록되어 있지 않아, 이를 감지하지 못하고 발생한 문제였습니다. 해당 문제를 해결하기 위해 피드, 댓글 등의 handler를 테스트 서버에도 추가해주었습니다.

export const server = setupServer(
  ...commentHandlers,
  ...feedHandlers,
  ...feedHidesHandlers,
  ...bookmarkHandlers,
  ...likeHandlers,
  ...followHandler,
  ...searchHandler,
  ...userHandler,
);

3️⃣ 기존 테스트 코드 파일 명 수정 (컨벤션 적용)

  • FeedMainList.test.tsx -> FeedMainList.integration.test.tsx

  • FeedMainList.error.test.tsx -> FeedMainList.integration.error.test.tsx

  • useInfinityFeeds.unit.test.tsx ✨ 무한 스크롤 단위 테스트 추가

  • useLikes -> useLikes.unit.test.tsx

  • useBookmarks.test.tsx -> useBookmarks.unit.test.tsx

4️⃣ 숨김 및 신고 테스트 코드 추가

  • useHide.unit.test.tsx

image

  • useSubmitReports.unit.test.tsx

image

  • FeedReports.integration.test.tsx

image

5️⃣ 신고하기 API 응답 데이터 추가

// 6️⃣ 피드 신고
http.post('/feeds/:feed_id/reports', async ({ request, params }) => {
  const { feed_id } = params;

  // ...

  return createHttpSuccessResponse({ isReported: true });  응답 데이터 추가
})
  • 기존에 신고하기 API에 응답 데이터가 추가되어 있지 않아, 응답 데이터를 추가하였습니다.

리뷰어가 중점적으로 확인해야 하는 부분

  • 단위 테스트와 통합 테스트에 대해 인지하셨나요?
  • 숨김 및 신고 테스트 코드가 해당 기능을 잘 테스트하고 있나요?

발견한 이슈

  • 통합 테스트를 다 진행하면서 프로젝트를 진행하기에는 생산성이 떨어질 수 있다고 생각하여서 우선 비즈니스 로직에 대한 단위 테스트를 작성해나가면서, 추후에 프로젝트 고도화 단계 혹은 Release 이전 단계에서 통합 테스트를 적용하는 것에 대해서 어떻게 생각하시나요?

@BangDori BangDori self-assigned this May 18, 2024
Copy link

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-73.d37mn03xh3qyyz.amplifyapp.com

Copy link
Member

@Legitgoons Legitgoons left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고 많으셨습니다. 병합하셔도 좋습니다.

테스트 적용에 대해서는 저 역시도 통합 테스트를 함께 진행하면서 개발하기 보다, 우선 기능개발과 함께 해당 기능에 따른 단위 테스트 코드를 작성하고 추후에 통합 테스트를 적용하는 것이 생산성 면에서 좀 더 효율적이라고 생각합니다!

@BangDori BangDori merged commit 8a6e894 into main May 19, 2024
2 checks passed
@BangDori BangDori deleted the feature/issue-71-test branch May 19, 2024 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants