인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
깜지

[Cypress] 📝 웹 테스트 자동화 사용법 👀 한눈에 정리

Cypress 소개 소프트웨어 테스팅은 소프트웨어의 품질을 보장하고 결함을 예방하고 수정하는 데 매우 중요한 과정이다. 특히 지속적이고 반복적이고 자주 일어나는 작업들은 가능한 자동화하고 효율적으로 수행하는 것이 좋다. cypress는 웹애플리케이션을 테스트하기 위한 자바스크립트로 작성된 가벼운 라이브러리로, 실제 애플리케이션과 테스트 코드를 동일한 브라우저에서 실행하는 방식을 취하고 있다. 브라우저 기반의 GUI를 사용하여 테스트의 실행 상태를 확인하고 디버깅할 수 있는 다양한 편의 기능을 제공한다. 예를들어 실행된 모든 테스트 명령과 각 명령이 실행될 때의 UI 상태를 스냅샷 형태로 모두 저장해 특정 시점의 UI 상태를 눈으로 확인할 수 있다. 또한 전체 테스트 진행 과정을 동영상으로 저장하거나 테스..

category_image
인파_
2024.03.24
(0)
Testing/JEST

[JEST] 📚 Supertest 사용법 (통합 API 테스트)

Supertest 이때까지는 JEST를 이용해 메서드 레벨의 단위 테스트를 다루었다. 단위 테스트란, 가장 작은 단위를 테스트한다는 것으로 즉각적인 피드백이 나온다는 장점이 있다. 하지만, 하나의 메서드가 잘 동작하는 것은 보장할 수 있지만, 그들이 결합되었을 때도 잘 작동한다는 보장 할 수 없다. 반면, 통합 테스트란, API의 기능을 테스트 하는 것으로, 여러 개(외부 라이브러리도 포함)를 통합해서 테스트하는 것을 말한다. 슈퍼테스트는 ExpressJS 통합 테스트용 라이브러리로 내부적으로 익스프레스 서버를 구동시켜 가상의 요청을 보낸 뒤 결과를 검증한다. API 서버를 만들고 HTTP 검증 도구로 슈퍼테스트(supertest)를 자주 사용한다고 보면 된다. GitHub - visionmedia/su..

category_image
인파_
2022.01.22
(0)
Testing/JEST

[JEST] 📚 모킹 Mocking 정리 - jest.fn / jest.mock /jest.spyOn

Mocking 원리 mocking이란 (mock = 모조품) 뜻 그대로 받아드리면 된다. 즉 테스트하고자 하는 코드가 의존하는 function이나 class에 대해 모조품을 만들어 '일단' 돌아가게 하는 것이다. 한마디로, 단위 테스트를 작성할 때, 해당 코드가 의존하는 부분을 가짜(mock)로 대체하는 기법을 말한다. 왜 가짜로 대체하는가? 테스트 하고싶은 기능이 다른 기능들과 엮여있을 경우(의존) 정확한 테스트를 하기 힘들기 때문이다. 예를들어 request body에 사용자의 id와 password를 넣어서 post요청을 보내면 컨트롤러에서 정보를 추출한 후 데이터베이스에 넣어주는 단위테스트를 하고 싶다고 하자. 컨트롤러는 라우터에서 응답을 보내는 미들웨어를 특별히 부르는 말이다. 그냥 함수다. 데..

category_image
인파_
2022.01.21
(0)
Testing/JEST

[JEST] 📚 비동기 코드 테스트 방법

콜백 테스트 비동기 메소드는 이벤트 루프로 인해 나중에 처리되기 때문에, 비동기의 결과를 검증 하기위해선 콜백에 expect() 를 사용해야 한다. 여기서 중요한건 done 이다. done 은 Jest Runner에게 명시적으로 이 테스트 함수는 비동기 코드를 테스트 하니 콜백 함수가 호출되는지도 좀 봐주라고 알려주는 역할을 한다. 따라서 비동기 함수를 검증하려 할때 결과를 콜백 함수로 받는다면, 콜백 함수 인자에 done 을 써주고, done() 을 호출해서 끝내야 한다. // 테스트할 함수 : 0.1초 뒤에 콜백함수를 실행하는 함수 function fetchUser(id, cb) { setTimeout(() => { console.log("wait 0.1 sec."); const user = { id..

category_image
인파_
2022.01.20
(0)
Testing/JEST

[JEST] 📚 유용한 Matcher 함수 종류 모음

JEST Matcher 정리 Jest는 다른 방법으로 값을 테스트 하도록 matcher 라는 것을 사용한다. matcher란 '이거 맞아?' 라고 물어보는 메서드리고 보면 된다. 기대한 값이 실제 반환된 값과 일치하는 지를 확인하는 작업을 일컫는다. 이번 포스팅에는 JEST에서 자주 쓰이는 matcher 함수 핵심만 꼽아 정리하는 시간을 가져 볼 것이다. 모든 matcher를 확인해보고 싶다면 expect에 대한 api 상세서 참고하자. Jest - Expect - 테스트를 작성할 때 값이 특정 조건을 충족하는지 확인해야 하는 경우가 많습니다. runebook.dev [ 테스트할 함수 ] // user.js // 테스트할 함수 function getUser(id) { return { id, email: ..

category_image
인파_
2022.01.20
(0)
Testing/JEST

[JEST] 📚 JEST 소개 & 기본 사용법 정리

JEST 란? Jest는 페이스북에서 만들어서 React와 더불어 많은 자바스크립트 개발자들로 부터 좋은 반응을 얻고 있는 테스팅 라이브러리다. 출시 초기에는 프론트앤드에서 주로 쓰였지만 최근에는 백앤드에서도 기존의 자바스크립트 테스팅 라이브러리를 대체하고 있다. Jest 이전에는 자바스크립트 코드를 테스트하라면 여러가지 테스팅 라이브러리를 조합해서 사용하곤 했었다. 예를 들어, Mocha나 Jasmin을 Test Runner로 사용하고, Chai나 Expect와 같은 Test Mathcher를 사용했으며, 또한 Sinon과 Testdouble 같은 Test Mock 라이브러리도 필요했었다. 이 라이브러리들은 굉장히 유사하지만 살짝씩 다른 API를 가지고 있었기 때문에, 여러 프로젝트에 걸쳐서 일하는 자..

category_image
인파_
2022.01.19
(0)