Step3-kakao-tech-campus / Team3_BE

[카테캠 1기] 번개 지향 볼링 모집 커뮤니티 "번개볼링"의 백엔드 서버입니다.
2 stars 4 forks source link

기존의 메시지 repository test의 더미데이터를 teardown을 사용하도록 변경 #75

Closed jagaldol closed 11 months ago

jagaldol commented 11 months ago

Summary

기존의 테스트 코드인 MessageRepositoryTest 클래스를 동일한 teardown.sql을 사용하도록 변경하고 더미 데이터를 삽입하던 @BeforeEach 구문을 삭제하였습니다.

Description

추가한 테스트 데이터 ```sql INSERT INTO message_tb(user_id, opponent_user_id, content, is_receive, is_read) VALUES (1, 3, '1번이 3번에게 보낸 쪽지1', false, true), (3, 1, '1번이 3번에게 보낸 쪽지1', true, true), (1, 3, '1번이 3번에게 보낸 쪽지2', false, true), (3, 1, '1번이 3번에게 보낸 쪽지2', true, true), (1, 3, '1번이 3번에게 보낸 쪽지3', false, true), (3, 1, '1번이 3번에게 보낸 쪽지3', true, true), (1, 3, '1번이 3번에게 보낸 쪽지4', false, true), (3, 1, '1번이 3번에게 보낸 쪽지4', true, true), (1, 3, '1번이 3번에게 보낸 쪽지5', false, true), (3, 1, '1번이 3번에게 보낸 쪽지5', true, true), (3, 1, '3번이 1번에게 보낸 쪽지1', false, true), (1, 3, '3번이 1번에게 보낸 쪽지1', true, false), (3, 1, '3번이 1번에게 보낸 쪽지2', false, true), (1, 3, '3번이 1번에게 보낸 쪽지2', true, false), (3, 1, '3번이 1번에게 보낸 쪽지3', false, true), (1, 3, '3번이 1번에게 보낸 쪽지3', true, false), (3, 1, '3번이 1번에게 보낸 쪽지4', false, true), (1, 3, '3번이 1번에게 보낸 쪽지4', true, false), (3, 1, '3번이 1번에게 보낸 쪽지5', false, true), (1, 3, '3번이 1번에게 보낸 쪽지5', true, false), (4, 3, '4번이 3번에게 보낸 쪽지1', false, true), (3, 4, '4번이 3번에게 보낸 쪽지1', true, false), (4, 3, '4번이 3번에게 보낸 쪽지2', false, true), (3, 4, '4번이 3번에게 보낸 쪽지2', true, false), (4, 3, '4번이 3번에게 보낸 쪽지3', false, true), (3, 4, '4번이 3번에게 보낸 쪽지3', true, false), (4, 3, '4번이 3번에게 보낸 쪽지4', false, true), (3, 4, '4번이 3번에게 보낸 쪽지4', true, false), (4, 3, '4번이 3번에게 보낸 쪽지5', false, true), (3, 4, '4번이 3번에게 보낸 쪽지5', true, false); ```

2번(최볼링)은 메일 인증안된 유저로 1, 3, 4를 가지고 데이터를 생성하였습니다.

변경된 더미 데이터에 맞게 각 테스트의 assertion 조건을 변경하였습니다.

추가 - UTF-8 encoding

이전 PR에서 데스크탑환경에서 문제 없이 테스트가 돌아갔지만, 노트북으로 작업하려고 하니 테스트가 실패하는 문제가 발생했습니다. 실패할 이유가 없는데 계속 실패해서 미치는줄 알았습니다. (저희 서버는 테스트 잘 통과했습니다.)

오류는 정확히 @WithUserDetails(value = "김볼링")에서 일어났고, WithUserDetails로 해당 유저를 제대로 찾지 못하고 있었습니다. WithUserDeails 문제인지 알고 그 방향으로 서칭하며 이틀을 낭비했는데, 알고보니까 한글 encoding 문제였습니다.

WHERE name='김볼링'의 쿼리가 날아가지만, db에는 김볼링이 깨져 源?蹂쇰쭅로 들어가 있었습니다.

@Sql로 넣은 sql문들의 encoding이 spring.sql.init.encoding: UTF-8과 별개로 config를 직접 넣어줘야 하는걸 알고 해결하였습니다.

추가 - RESTART IDENTITY

Related Issue

Issue Number: #63