테스트 코드

    테스트하기 쉬운 코드, 구조 (2) : mocking 없이 테스트 코드 작성하기

    이전 글에서 작성했던 테스트 코드는 mocking을 사용해서 구현했다. mocking을 사용하면 내가 테스트하고자 하는 계층에 물려있는 의존성들을 대신할 객체들을 손쉽게 만들어 낼 수 있다. 하지만 mocking을 남용하는 것은 코드 단계에서의 설계가 좋은 설계인지 나쁜 설계인지를 판별하기 어렵게 하는 단점이 있다. 먼저 이전 글에서 작성했던 구현 클래스를 보고 mocking 없이 테스트를 구현해 보면 // 이전 글에서 작성했던 구현 클래스 // blog.service.ts import { Test1Repository } from './test2.repository'; import { Test2Repository } from './test2.repository2'; import { Test3Reposit..

    테스트하기 쉬운 코드, 구조 (1) : mocking 사용한 테스트코드 작성

    보통 의존성이 얽혀있는 코드는 테스트하기가 어렵다. 하지만 mocking을 사용하면 매우 쉽게 테스트 코드를 작성할 수 있다. (mocking은 "모의 객체로 외부의 다른 서비스나 모듈들을 실제 사용하는 모듈을 사용하지 않고 실제의 모듈을 "흉내"내는 "가짜" 모듈을 사용하는 객체" 이다.) 먼저 mocking을 사용하지 않고 테스트 코드를 작성해 보면 // blog.service.ts import { Test1Repository } from './test2.repository'; import { Test2Repository } from './test2.repository2'; import { Test3Repository } from './test2.repository3'; import { Test4Re..

    테스트 코드 공부 기록_ 20221006

    테스트 코드 공부 기록_ 20221006

    테스트 코드 테스트 코드 이 글은 jest를 활용한 TDD 하는 방법에 대한 내용은 아니다. layer가 나눠져 있는 환경에서의 테스트 코드 작성, 의존성을 활용해 mock 함수 제거에 대한 개인적인 고민이 담긴 글이다. 그렇기 때문에 해당 글이 정답 일리는 없고, 그냥 테스트 코드에 매우 미숙한 1년 차 주니어 개발자의 개인 공부 기록이다. 최근 테스트 코드를 제대로 작성해보고 싶어서 작년에 샀던 강의를 다시 들었다. 해당 강의는 간단한 CRUD 기능을 TDD로 개발하는 강의였다. 강의에선 javascript와 express, jest를 활용해 테스트코드를 작성했지만, 직접 해볼 땐 Typescript와 express, jest를 활용해 진행했다. 먼저 아래는 모든 비지니스 로직이 한 곳에 모여있는 코..