요즘 테스팅에 관심이 많아서 도입해보려는데 리액트고 cicd 시에 자동으로 테스팅되게 스크립트는 걸어뒀거든
테스팅 코드를 할때 어떤점을 주로 고민해야하는지 모르겠어 관련한 인사이트나 잘 아는 사람 있을까?
댓글 11
인사이트 까진 아니고 걍 심심해서 써보자면
익명(211.195)2022-05-22 00:22
답글
프론트쪽에서 고려가능한건 다음의 항목들이 있겠지
1. 서버 요청으로 부터 제대로 된 데이터를 받는가
2. 서버데이터를 적절히 잘 가공해서 UI단에서 뿌려주는가
3. 사용자의 다양한 이벤트에 따라서 보여주는 컴포넌트에서 나타나는 값이 정확한가
익명(211.195)2022-05-22 00:23
답글
테스트 코드는 사용자의 사용 흐름을 나타내기는 하지만 어디까지나 테스트 코드이기 때문에 너무 심한 수준만 아니라면 클린 코드일 필요는 없어. 그저 협업시 타인이 봤을 때 알아볼수 있을정도의 적당한 코드 수준을 지향함
익명(211.195)2022-05-22 00:25
답글
1,2,3 번들 전체적으로 상태와 컴포넌트 출현 2가지로 고민할테고 결국 컴포넌트도 상태를 보여주기 위함이기 때문에 결국 테스트의 주안점은 의도한 데이터 상태가 나타나는가로 결론이 나와
그러니 컴포넌트가 데이터와 함께 렌더링 된 상태, 사용자이벤트 발생 이후의 특정한 상태 변화 이 2가지를 중심으로 코드를 짜면 될거야
익명(211.195)2022-05-22 00:26
답글
테스트는 어디까지나 이후 변화에 따른 여파를 제때 알아차리기 위해서 하는 성격이라 그 이상을 할 필요가 있을지는 잘 모르겠음. 너도 프론트니까 알겠지만 수시로 변경이 일어나기 때문에 너무 테스트 코드에 신경을 쓰더라도 금새 새로운 컴포넌트 생성 -> 새로운 테스트 코드가 작성되니까
익명(211.195)2022-05-22 00:28
답글
그렇지… 코드 유통기한이 길어야 한두달 이더리고
익명(58.236)2022-05-22 00:29
답글
일단은 단순하게 시작하고, 변경이 잘 일어나지 않는 컴포넌트에 한해서만 조금씩 테스트케이스를 붙여나가는게 좋을거야. 그리고 각 컴포넌트에서 나타나는 데이터와 기능에 대한 우선순위를 정하고 그 우선순위에 따라서 붙여나가기도 해야겠지
이정돈 너도 충분히 잘 알거라 생각함
익명(211.195)2022-05-22 00:29
답글
이벤트 페이지로 갈고 뭐 넣고 하다보면 스냅샷도 의미
없어지고…ㅋㅋㅋ 고민이였는데 과고민이였구나 싶네… 고마옹
익명(58.236)2022-05-22 00:30
답글
보통 FE 테스트 라이브러리 들에서 사용하는 js dom 의 경우 웹 브라우저의 렌더러 엔진과는 좀 다르기 때문에 상태 체크하는데는 적절하지만 좀더 복잡한 인터렉션, 사용자 이벤트 (드래그앤 무브) 등에 대해서는 테스트를 제대로 하기가 힘들어. 이건 jsdom 라이브러리의 한계기 때문에 어쩔수가 없당
익명(211.195)2022-05-22 00:30
답글
ㅇㅇ 적당히 타협하고 다른 것에 집중하는게 좀더 좋을거 같아
테스트 데이터 작성하는것도 솔직히 좀 많이 귀찮잖아? 그것에 대한 추상화 및 테스트 데이터 생성 라이브러리를 하나 짜보든가 ㅋㅋㅋ
익명(211.195)2022-05-22 00:31
답글
모든 경우에대해서 테스팅라이브러리로 구현해보려는게 고민이였는데 사실 하면서도 왜해야되나 생각이 들었었는데 쉽게생각해야겠다…
인사이트 까진 아니고 걍 심심해서 써보자면
프론트쪽에서 고려가능한건 다음의 항목들이 있겠지 1. 서버 요청으로 부터 제대로 된 데이터를 받는가 2. 서버데이터를 적절히 잘 가공해서 UI단에서 뿌려주는가 3. 사용자의 다양한 이벤트에 따라서 보여주는 컴포넌트에서 나타나는 값이 정확한가
테스트 코드는 사용자의 사용 흐름을 나타내기는 하지만 어디까지나 테스트 코드이기 때문에 너무 심한 수준만 아니라면 클린 코드일 필요는 없어. 그저 협업시 타인이 봤을 때 알아볼수 있을정도의 적당한 코드 수준을 지향함
1,2,3 번들 전체적으로 상태와 컴포넌트 출현 2가지로 고민할테고 결국 컴포넌트도 상태를 보여주기 위함이기 때문에 결국 테스트의 주안점은 의도한 데이터 상태가 나타나는가로 결론이 나와 그러니 컴포넌트가 데이터와 함께 렌더링 된 상태, 사용자이벤트 발생 이후의 특정한 상태 변화 이 2가지를 중심으로 코드를 짜면 될거야
테스트는 어디까지나 이후 변화에 따른 여파를 제때 알아차리기 위해서 하는 성격이라 그 이상을 할 필요가 있을지는 잘 모르겠음. 너도 프론트니까 알겠지만 수시로 변경이 일어나기 때문에 너무 테스트 코드에 신경을 쓰더라도 금새 새로운 컴포넌트 생성 -> 새로운 테스트 코드가 작성되니까
그렇지… 코드 유통기한이 길어야 한두달 이더리고
일단은 단순하게 시작하고, 변경이 잘 일어나지 않는 컴포넌트에 한해서만 조금씩 테스트케이스를 붙여나가는게 좋을거야. 그리고 각 컴포넌트에서 나타나는 데이터와 기능에 대한 우선순위를 정하고 그 우선순위에 따라서 붙여나가기도 해야겠지 이정돈 너도 충분히 잘 알거라 생각함
이벤트 페이지로 갈고 뭐 넣고 하다보면 스냅샷도 의미 없어지고…ㅋㅋㅋ 고민이였는데 과고민이였구나 싶네… 고마옹
보통 FE 테스트 라이브러리 들에서 사용하는 js dom 의 경우 웹 브라우저의 렌더러 엔진과는 좀 다르기 때문에 상태 체크하는데는 적절하지만 좀더 복잡한 인터렉션, 사용자 이벤트 (드래그앤 무브) 등에 대해서는 테스트를 제대로 하기가 힘들어. 이건 jsdom 라이브러리의 한계기 때문에 어쩔수가 없당
ㅇㅇ 적당히 타협하고 다른 것에 집중하는게 좀더 좋을거 같아 테스트 데이터 작성하는것도 솔직히 좀 많이 귀찮잖아? 그것에 대한 추상화 및 테스트 데이터 생성 라이브러리를 하나 짜보든가 ㅋㅋㅋ
모든 경우에대해서 테스팅라이브러리로 구현해보려는게 고민이였는데 사실 하면서도 왜해야되나 생각이 들었었는데 쉽게생각해야겠다…