본문 바로가기

TDD

(6)
Jest 많이 썼던 내용들 정리 (1) Intro이 포스팅은 Jest 공식문서를 보고 공부한 내용들이 아니라 TDD를 하면서 많이 썼던 내용들이나 헷갈렸던 내용들을 정리할 필요가 있다고 생각해서 정리해봤다  toBetoBe는 정리할 내용도 없지만 그래도 가장 기본적인 메서드이기 때문에 정리해봤다toBe는 Jest의 매처 중 하나로, strict equality를 검사한다. 즉 JavaScriptdml === 연산자와 동일하게 작동하며, primitive value들을 비교할 때 주로 사용하고 있다 toBe 예시describe("toBe", () => { it("sum", () => { expect(sum(1, 2)).toBe(3); expect(sum(1, 2)).not.toBe(4); }); it("subtract", () ..
간단한 게시판 만들면서 TDD 맛보기 (POST 요청) IntroJest를 이용한 어노테이션이나 문법들 복습해봤으니 실제 API를 만들면서 CRUD를 TDD 해보려고 한다.DB는 연결하지 않고 간단하게 controller - service의 관한 테스트 코드를 만들어보려고 한다.  BoardController 유닛테스트 세팅레드 단계를 진행하기 전에 beforeEach를 통해서 BoardController를 TestingModule을 이용해서 세팅을 해줘야 한다.import { Test, TestingModule } from '@nestjs/testing';import { BoardController } from '../board.controller';import { BoardService } from '../board.service';describe('Bo..
Jest; JUnit 어노테이션을 참고한 IntroNode.js 백엔드 개발자가 굳이 JUnit을 참고를 할 필요가 없는데 굳이 참고를 한 이유가 궁금할 것이다. 이유는 단순하다.Node.js를 사용해서 TDD를 공부하려고 하는데 관련된 레퍼런스가 아무래도 자바공화국 답게 Java/Spring으로 다룬 테스트 코드가 더 많았기 때문이다(물론 Node.js와 관련된 레퍼런스도 찾을 수 있었지만 보통 Jest를 사용하는 아주 간단한 예제 정도 밖에 없었음). 책이나 유튜브, 인강을 보면서 공부를 하려고 해도 온 세상이 Java라서 어쩔 수 없이 Java, JUnit, Spring으로 만들어진 테스트 코드를 참고로 하면서 공부를 할 수 밖에 없었다. 다행히 학부 때 Java/SpringBoot를 다뤄본적이 있어 그렇게 어렵지는 않게 공부를 할 수 있..
단위 테스트: 기본 개념 Jest란Jest는 JavaScript 테스팅 프레임워크로, 주로 Node.js 애플리케이션을 테스트하는 데 사용된다.Facebook에서 개발했으며, 여러 가지 강력한 기능과 도구들을 제공하여 테스트 작성과 실행을 쉽게 만든다장점간편한 설정: Jest는 설정이 거의 필요 없도록 설계되었고 기본 설정으로도 대부분의 프로젝트에서 바로 사용할 수 있다.스냅샷 테스트: Jest는 컴포넌트의 출력이나 함수의 반환값을 스냅샷으로 저장하고, 이후 테스트 실행 시 이 스냅샷과 비교하여 변경 사항을 감지한다모의 함수와 모듈: Jest는 테스트 중 특정 함수나 모듈을 모의(mock)하여 테스트 환경을 제어할 수 있는 기능을 제공한다비동기 코드 테스트: 콜백, 프로미스, async/await 등을 포함한 비동기 코드를 쉽게..
예제; 암호 검사기 암호 검사기 규칙길이가 8글자 이상0~9 사이의 숫자대문자 포함  암호 검사기 평가 기준3가지 규칙을 모두 충족하면 암호는 강함 - STRONG2가지 규칙을 충족하면 암호는 보통 - NORMAL1개 이하의 규칙을 충족하면 암호는 약함 - WEAK  암호 검사기 규칙 조합의 경우의 수모든 항목을 충족하는 경우 - STRONG길이가 8글자 미만이고 모든 항목을 충족하는 경우 - NORMAL길이가 8글자 이상이고 나머지 항목은 충족하지 않는 경우 - WEAK숫자는 없고 나머지 항목은 충족하는 경우 - NORMAL숫자는 있고 나머지 항목은 충족하지 않는 경우 - WEAK대문자가 없고 나머지 항목은 충족하는 경우 - NORMAL대문자가 있고 나머지 항목은 충족하지 않는 경우 - WEAK모든 항목을 충족하지 않는 ..
테스트의 개념과 중요성 테스트 코드란 무엇인가소프트웨어 기능과 동작을 테스트하는데 사용되는 코드를 말한다.개발자가 요구사항에 맞게 개발한 기능이 의도대로 정확히 동작하는지 검증하는 절차를 코드화 해놓은 것이 테스트 코드이다   테스트 코드를 왜 작성해야 하나?Add Function 관점신규 기능 개발 과정 중 예상하지 못햇던 문제를 미리 발견할 수 있다작성한 코드가 의도한 대로 동작하는지 검증할 수 있다Refactoring 관점단순 구조적 변경(중복 제거, 캡슐화)을 적용했을 때 이전과 동일하게 기능이 정상 동작 여부를 확인할 수 있다코드 수정이 필요한 상황에서 유연하고 안정적인 대응을 할 수 있다   테스트의 종류테스트의 종류는 테스트 대상 범위나 성격에 따라 크게 3가지로 구분 된다UI, Service(Integration..