단위 태스트란?
단위 테스트는 개발자가 수행하고 자신이 개발한 코드단위를 테스트합니다. 소스코드의 개별 단위를 테스트를하여 사용할 준비가 되었는지 확인하는 테스트 방법입니다. 개발 라이프 사이클 초기 단계에서 버그가 식별되므로 버그 수정비용을 줄이는 데 도움이 됩니다. 메소드를테스트하는 또다른 메소드
단위테스트의 조건
- 독립적이여야 하며, 어떤 테스트도 다른 테스트에 의존되선 안됩니다.
- 격리 되어야 합니다. Ajax,axios,localStorage등 테스트 대상이 의존하는것을 다른 것으로 대체해야 합니다.
왜 단위 테스트를 해야할까?
- 첫번째는 프로그램이 크고 메모리가 많이 들고 다른 리소스가 필요한 경우 로컬 환경에서 쉽게 코드를 실행시켜보기 어렵기 때문이다. 이런프로그램을 개발하는 개발자들은 유닛테스트를 만들어서 빠르게 자신의 코드가 정상적으로 작동하는지 확인 할 수 있다.
- 종속성이 있는 다른 클레스 들에게서 버그가 나는것을 방지하기 위함.
단위 테스트에서 request객체 가져오기
단위 테스트를 작성하다보면 경우에따라서 request객체가 필요할때가 있습니다.그럴땐 node-mocks-http 라는 모듈을 가져와서 가짜 객체를 받아서 사용할 수 있습니다.
npm i node-mcks-http --save-dev
해당 모듈을 이용해서 express.js 애플리케이션 라우팅 함수를 테스트 하기 위한 http 객체를 얻을 수 있습니다.
해당 모듈을 통해서 http객채를 얻으면 가짜 json데이터를 넣어서 사용할 수 있습니다.
위와같이 가짜 json파일을 만들어서
다음과같이 단위테스트를 진행 할 수도 있습니다
통합 테스트란?
통합테스트는 모듈을 통합하는 단계에서 수행하는 테스트 입니다.
단위 테스트를 먼저 수행하여 모듈들이 잘 작동되는 것을 확인했다면 이제 이 모듈들을 연동하여서 테스트를 수행합니다. 이렇게 연동해서 테스트하는것이 통합테스트라고 합니다.
통합 테스트를 하는 이유
- 모듈들의 상호 작용이 잘이루어 지는지 검증학 위해서
- 통합하는 과정에서 발생할 수 있는 오류를 찾기 위해서
supertest 를 이용해서 통합 테스트를 구현
nodejs http 서버를 테스트하기 위해서 만들어진 모듈입니다.
request(app)
.get('/user')
.expect('Content-Type',/json/)
.expect('Content-Length','15')
.expect(200)
.end(function(err,res){
if(err) throw err;
});
'Node.js' 카테고리의 다른 글
express에 에러처리 (0) | 2023.01.25 |
---|---|
Jest (1) | 2023.01.25 |
Node.js ? (0) | 2023.01.25 |
express/ 미들웨어 (0) | 2023.01.25 |
package.json ? (0) | 2023.01.25 |