프로그래밍-Web/Jest(TDD)(5)
-
[정리] Artillery를 이용한 부하테스트
Command yarn artillery quick --count 50 -n 30 apiEndpoint 이때 count는 유저수, n은 한명의 유저당 요청수이다 apiEndpoint에는 주소를 적는다 요청 응답에 대한 최대,최솟값과 분포를 확인할 수 있다 Artillery의 장점은 이러한 테스트를 시나리오화 할 수 있다는 것에 있다. config에는 타겟과 요청 빈도를, 시나리오에는 요청 flow를 작성한다 조금 확장해보면 이렇게 시나리오를 만들 수 있다 이때 테스트에 사용할 데이터는 payload에 정의한다. 예시의 경우는 get->post->get 순서로 테스트가 진행된다 capture는 post 시나리오에서 받은 data1이라는 결과물을, newData라는 이름으로 다음 시나리오에 보낸다. 최종적으..
2021.02.01 -
[정리] Jest를 이용한 Restful API 테스트
Restful API는 Create, Read, Update, Delete 명령을 수행한다 각 행위에 대해 기본적으로 테스트 해야 할 기능이 정해져 있으면, 그에 따른 루틴이 있다. 또한 모든 행위는 기능을 위한 유닛 테스트 -> 라이브러리, DB접근 등 실제 사용 환경을 포함한 통합테스트 과정을 거친다. 1) 시작전 이 포스팅에서 RestAPI의 기본기능 예시는 한번의 쿼리를 기준으로 한다. 예컨데 Id로 한개의 데이터를 find하는 API의 경우, 모델을 대상으로 데이터 하나를 찾는 로직만 작성하여 테스트한다 또한 Restful API는 전달객체 req, res와 미들웨어 next를 args로 갖는다. 그리고 특정 DB 모델을 대상으로 한다. 따라서 해당 객체들에 위와 같은 Mocking이 필요하다...
2021.02.01 -
[정리] supertest를 이용한 통합테스트 정리
유닛테스트와는 다르게, 통합테스트는 DB의 처리로직을 포함한 API의 모든 트랜젝션 과정이 제대로 수행되었는지를 테스트한다. 그래서 보통은 Mock을 사용하지 않는다. 여기에서는 supertest라는 라이브러리를 사용하고, 실제 DB에 접근해야 하므로 mongoose 객체도 불러와준다 또한 app이라는 이름으로 서버의 index파일도 받았는데, 이는 트랜젝션 환경이 그대로 구축되어야 하기 때문이다. (이때문에 서버의 index 파일을 별개로 익스포트 해줘야 한다) 작업시작전에 DB와 연결이 되어야한다. 통합테스트가 트랜젝션의 올바른 수행을 검사한다는 측면이 크기 때문이다. 이전에 내 블로그에서 정리했던글처럼 test로 빌드하면 init파일에서 DB에 접근토록한다 기본적인 테스트 구문은 유닛테스트와 동일하..
2021.01.29 -
[정리] JEST를 이용한 유닛테스트 방법 간단정리
간단하게 사용하던 방식 정리(NodeJS기준) 일단 여기에서는 유닛테스트에 jest를 이용한다 jest는 애초에 리액트를 위한 라이브러리라서 nodeJS에서 사용하려면 별도 설정을 몇가지 해줘야 된다. 설정이 다 되어있다는 가정하에 간단한 유닛테스트 예시를 들어보겠다! 1) 시작전 테스트 관련 코드들은 보통 별개로 작성한다. 내 경우에는 통합테스트와 유닛테스트로 나누어 관리하였다. 2) Mock 객체 생성 테스트 파일에는 기존에 설정했던 컨트롤러와 모델, 그리고 테스트 데이터를 불러온다 여기에서 httpMocks에 주목해보자 jest를 이용한 테스트에서는 Mock함수를 만들어 사용한다 Mocking은 코드가 의존하는 부분을 가짜(mock)로 대체하는 기법을 말한다. 모든 유닛테스트에 Mock함수를 적용하..
2021.01.29 -
[이슈] Mongoose(node.js)+JEST 동시 사용시 주의점
mongoosejs.com/docs/jest.html Mongoose v5.11.14: Testing Mongoose with Jest Testing Mongoose with Jest Jest is a client-side JavaScript testing library developed by Facebook. Because Jest is designed primarily for testing React applications, using it to test Node.js server-side applications comes with a lot of caveats. We strongly mongoosejs.com 명심하자 jest는 React를 위해 만들어진 라이브러리다 애초에 기본동작도 jsDOM이라..
2021.01.29