상세 컨텐츠

본문 제목

[React / Test] 현명하게 테스트 해보기 / Gulp, Mocha, Jest, Chai

프론트 연구 노트

by bydawn25 2023. 2. 2. 11:08

본문

마지막 글이 10월 이다.(면목없음)

 

 

근황을 이야기 하자면 여전히 같은 자리에서 잘 먹고 잘 사는 중입니다.

 

달리기는 조금 덜하고 지방층은 두꺼워졌지만 계속해서 같은 일을 하고 있습니다.

 

 

 

 

 

조금만 더 있으면 2년이 된다 .. !! 2년이라니 !!

 

나이가 먹으면서 세월이 무정하다는 말을 실감하게 되는 요즘. 같은 개발업무에 권태감이 찾아왔다.

 

 

나에게 권태감과 후회와 같은 감정들은 죽음처럼 공포스럽다.

 

정말 왜 이렇게 불안한지 누구 바짓가랑이 붙잡고 물어보고 싶은 마음이다.(ㅋㅋ)

 

 

 

 

 

각설하고, 돌아가는 프로그램은 같은데 (심지어 기능도 비슷) 테스트를 수동으로 진행하다보니 여기저기 빵꾸가 나는 부분이 많아 이참에 "Auto Testing" 이라는걸 해봐야 겠다고 생각했다.

리서치하면서 정리해놓은 자료들

 

 

 

 

 

자 그러면 내가 왜 auto testing을 해야겠냐고 생각했을까?

물어보면 몇가지 이유가 있다.

 

1. 테스트 항목들이 일원화 되어어있다. 보통 아래의 경우에서 크게 벗어나지 않아 손으로 하면 지루하고(..) 지루한만큼 놓치는 부분도 생겼다.

-> 특정 부분에 어떤 태그들이 있어야 한다
-> 특정 부분을 누르면 어떻게 기능(모든 파일에서 동일함)이 실행되어야 한다
-> 불러오는 항목들에 내가 원하는 정보의 갯수와 큰 범주에서 맞아야 한다

 

2. 어떤 개발을 진행하던 간에 (규모와 관계없이)  현명하게 테스트하는 방법을 알아놓는건 일단 실이 아니니까 한다. (ㅋㅋㅋ) .

 

요즘 굵직한 시험을 두 가지 준비하고 있어 하루하루 정신이 없다. (하루에 3~5시간 잠..)

그래도 모든걸 놓아서는 안되기에 조금씩 Computer Science분야도 넓혀가야 겠다고 생각한다.(생각만 한다 ^^)

 

 

 

 

테스팅 종류

  • Unit testing
    • Most basic form of testing for web.
    • For testing function.
  • Sanity testing
    • Check the new code introduced and specific funtionalites
  • Usability Testing
    • Used to find areas for improvement to the overall UX design according to a real user's behavior and feedback

나의 경우 처음 시도하는 testing프로젝트라 가장 잘 알려진 Unit testing을 시도해 보기로 했다.

 

 

 

 

증명되어야 하는 기능

정말 정말 간단하다.

1. 버튼이 존재하면 API연결 여부를 점검한다.
2. 데이터를 부르는 API라면 불러와야 하는 항목을 잘 불러오는지 점검한다

이 쉬운걸 하는데 왜 이렇게 오래 걸리는지.. !!

 

 

 

 

 

지금까지 시도한 목록은 아래와 같다.

포기할때마다 업데이트할 예정 ㅎㅎㅎㅎ

Jest   - 프로그램 node.js버전이 현저히 낮고
- 연동되어 있는 라이브러리가 사용하는 jest가 있는데 작동이 되지 않음
하루 도전 후 포기
* 2023년 2월 첫째 주 도저ㄴ했지만 [Unexpected token .] error 발생 -> node 14이상 사용해야 한다고 함 ㅠㅠ 안될 듯 ..
React testing library     jest와 함께 사용되는데 node js 14버전 이하는 실행이 안되는 듯 보인다
Mocha Chai library, JS-dom, babel-register - 어느정도 실행이 되고 코드까지 짰으나 ..
-  React를 해석하는데 필요한 js-dom이 필요로하는 함수들이 현재 nodejs에 정의가 되어있지 않음 ㅠ
- JS-dom 버전을 나중에 내려서 다시 도전해 봐야겠다
이틀 도전 후 포기

Jest와 Mocha정도를 시도해 보았는데 현재 프로그램이 사용하고 있는 Node.js버전이 낮아 테스터들이 인식할 수 없는 경우가 많다 ㅠㅠ 하 진짜 .. 

 

다행인건 Storybook, Jasmine, Cypress, Puppeteer, Ava, Playwright 같은 여러 라이브러리가 남아있어서 이것들을 하나씩 격파해 볼 생각이다.

 

 

정말 한번에 되는건 없구나 ..

 

 

 

 

 

 

 

관련글 더보기