221012 단위 테스트

샨티(shanti)·2022년 10월 12일
0

TIL

목록 보기
130/145
post-thumbnail

하루를 마무리 하기 전, 오늘 있었던 일들을 잔잔히 되짚어봅니다.
성공과 실패의 모든 요소에서 '배울 점'을 찾아내어 기록하고,
더 성장하는 내일의 나를 위해 'action plan'을 세웁니다.

오늘 오전까지 인수테스트를 어찌 저찌 통과시키고, 마치 밥 반찬에서 맛있는 반찬만 다 골라먹고는 한켠에 수북이 남은 콩자반을(ㅋㅋ) 떠먹으려는 심정으로 단위테스트 파일을 열어보았다.

아... 이미 한껏 뒤로 제쳐둔 것을 다시 열어보는 것도 고통스러웠지만 어떻게 해야할지를 알 수 없는 고통이 더 심했던 것 같다.
우선 지지난주에 3단 테스트 강의를 한 번 보고, 다시 프로젝트 과제를 켜고 테스트를 작성하려는데 잘 되지 않았다. 심호흡을 습습 하하 한 뒤에 홀맨님이 올려주신 describe-context-it의 내용이 담긴 아샬님의 영상을 켰다.

십여분 남짓 되는 영상이었는데, 그 때의 분위기가 즐거워서 그랬는지 듣는 나도 괜히 기분이 좋아지는 영상이었다. 아 물론 기분만 좋아져서는 안되지. 그래도 describe-context-it을 조금 더 가까이 느낄 수 있었던 것 같다.

어쨌든 배운 내용이니 이번 테스트에서 어떻게든 써먹어보자! 하는 생각에 우선 강의 내용에 따라 테스트가 비교적 자세히 작성되어 있는 Header 관련 테스트 파일을 켰다.
아까 본 영상을 기반으로 천천히 테스트코드를 살펴보니 중요한 내용이 거의 다 담겨있는 것 아니겠는가. describe - context- it 구조와 함께 그렇게도 낯선 jest.mock()으로 진행하는 테스트까지.

우선 이 내용을 기반으로 테스트를 배우겠다는 마음으로 파일 순서대로 테스트를 만들어가기 시작했다.
약간 마음의 허들을 낮추기 위해 부득이 테스트문의 부가 설명은 한글로 썼다. (ㅎㅎ) 영어로 쓰면 좋겠지만.. 그건 정말 담번으로 미루자 ㅎ

그리고 터미널창에 열심히 터지고 있는 9개의 failed 메시지를 깔끔하게 사라지도록 하기 위해, 즉 내가 처리할 수 있는 단 하나의 fail만을 확인하기 위해 지금 작업하고 있는 하나의 파일만을 jest로 실행할 수 있도록 했다.

사실 동료들의 공유 화면을 보면서 별 감흥 없이 지나쳤던 포인트인데... 어제 TIL에도 작성했던 내용이지만 결국 '통제감'을 갖는 것이 지금은 중요하다고 생각했기에 내가 통제할 수 있는 부분들에 대해서는 적극적으로 통제하기로 마음먹었고 아주 사소한 것부터 통제해나가기 시작했다.

오히려 만들다보니 describe-context-it 구조는 아주 어려운 편이 아니었다. 결국 발목을 잡은 건 jest.mock() 이 부분이었는데 좀 더 정확히 얘기하면 자바스크립트 문법에 대한 이해 부족으로 인한 부분이었다.

hook을 모킹할 때 왜 익명함수가 두 번 연이어져서 나오는건지, 팩토리는 무엇인지, 중괄호는 왜 쓰이는지, 또 어떤경우에는 왜 중괄호를 또다시 소괄호로 감싸는 것인지, 리턴문이 있는 것과 없는 것은 무슨 차이인지 등등.
논리가 어렵다기 보다는 결국 문법을 몰라 겪는 어려움이라는 점을 다시한번 깨닫게 되었고 같이 있던 동료가 읽던 책을 사서 함께 분량을 정하고 읽어보자고 약속했다.

몇 몇 포인트에서 진도가 나갈 기미가 보이지 않는 부분에 대해서는 다양하게 시도해보다가 동료의 도움을 받아 이해하기도 했다.
오늘도 동료의 도움으로 물꼬를 트고 나니 생각보다 테스트 만드는게 재밌게 느껴지는 기이한(?) 체험도 했다. 하하.

한편으론 순서가 뒤바뀐, 즉 테스트가 나중에 작성되는 (있어서는 안될 ㅠㅠ) 무모한 짓을 벌이면서 '과연 이 테스트가 먼저 작성된 뒤에 코드가 만들어졌으면 어떤 점이 달라졌을까?' 하는 생각도 해보았다.

음... 확실친 않지만...
아마도.. 아마도 좀 더 관심사의 분리가 수월해지지 않았을까? 하는 생각도 든다.
홀맨님이 모킹할 것이 많아지면 구조 문제 발생의 신호가 될 수 있다는 이야기를 하셨는데 어떤 이야기인지 조금은 알 것 같다.

지금은 page-하위 컴포넌트 구조를 만들어놓긴 했지만 page에서 해주는 것들이 거의 없어서 약간 무용지물? 상태의 page들만 남겨져있는데.
만약 테스트부터 작성했다면 하위 컴포넌트들이 과도한 짐을 지는 일이 줄어들었을까? 하는 생각도 해본다. 과연 그럴 수 있었을지는 잘 모르겠지만...

어쨌든 컴포넌트들에 대한 테스트를 생각 이상으로 작성해나가고 있고 조금 걱정스러운건 '스토어'에 대한 테스트 작성이긴 하다.
그래도 컴포넌트 단위 테스트도 이만큼 작성했으니 좀 더 생각과 영역을 확장해서 스토어쪽도 연습하고 배우는 마음으로 만들어봐야지.

뜬금없긴 하지만ㅎㅎㅎ 오늘 저녁 먹고 남편&애기와 함께 스터디카페에 나오는 길에 문득 레벨테스트가 끝나면 시원하게 맥주 한잔 하고싶단 생각이 들었다.
괜히 바이오리듬에 지장이 있을 것 같아 지난 5월부터 빠빠이 했던 맥주. 거창하게 의미 부여할 것도 없지만 이제는 정말 정말 짧지 않은 거리를 오가며 준비할 남은 올해를 기대하고 또 담담히 준비하는 마음으로(?) ㅎㅎ . 냉장고에 한 캔 사다놓고!ㅎㅎ. 남은 오늘과 목요일, 금요일 오전까지 최대한 끌어 올려보자.

어휴. 그래도 9개 fail 나는거 보다가 파일 하나 돌려놓고 진득하니 테스트 작성한 후에 통과되는 거 보니 속이 다 시원하다. 맥주보다 낫네.

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글