문제 상황Nest js 프로젝트를 진행하며 테스트코드를 작성하고 실행하는데 겪은 문제이다. 테스트를 실행하게 되면 아래와 같은 에러가 발생하게 된다.No tests found. exiting with code 1. 이는 작성한 테스트코드를 인식하지 못하는 문제인 것이다. 해결 방법을 알아보도록 하자. 해결 방안현재 나는 아래와 같은 폴더 구조를 가지고 있다. src와 test가 Root Directory 산하에 있는 걸 볼 수 있는데 package.json을 봐보자.[BEFORE] "jest": { "moduleFileExtensions": [ "js", "json", "ts" ], "rootDir": "src", "testRegex": ".*\\.(sp..
테스트 가능성이라는 단어를 들어봤나요? 영어 단어로 Testability라고 합니다.테스트하기 쉬울수록 Testability가 높습니다. 더 나아가 테스트하기 쉬운 코드일수록 좋은 설계일 확률이 높습니다. 하지만 저를 포함한 많은 사람들이 테스트를 어려워하고 있습니다. 테스트를 어렵게 만드는 요소는 무엇일까요? 테스트를 어렵게 만드는 요소테스트를 어렵게 만드는 요소의 결론부터 말하자면 테스트하려는 대상의 입력과 출력에 있습니다. 테스트는 테스트하려는 대상의 입력을 쉽게 변경할 수 있고, 출력을 쉽게 검증할 수 있어야 작성하기 쉽습니다.하지만 숨겨진 입력이 존재하거나 숨겨진 출력이 존재한다면 테스트를 검증하기 어려워집니다. 그렇다면 숨겨진 입력과 숨겨진 출력이 대체 무엇일까요? 한번 알아봅시다.숨겨진 입력..
테스트 대역이란 무엇일까요? 네트워크에서 사용하는 대역(bandwith)과 비슷합니다만. 전혀 관련이 없답니다!테스트에서의 대역은 오롯이 테스트를 위해 만들어진 가짜 객체 또는 컴포넌트를 의미합니다. 아래의 상황에서 테스트코드를 짜본 적이 없는 개발자라면 공감하실 수도 있겠습니다. 회원가입을 완료하면 회원 테이블에 저장하고 환영 이메일을 보냅니다. 이런 상황에서 테스트코드를 짜야한다면 머리가 지끈지끈하지 않으신가요? 그리고 이런 고민도 할 수 있겠습니다."테스트를 할때마다 디비에 계속 저장되겠는데..?" , "더미 이메일을 계속 보내야 하나..?" 이 고민을 해봤다면 계속 글을 읽어도 좋을 거 같습니다. 저와 함께 가보시죠.아까의 상황을 다시 가져와 보겠습니다.회원가입을 완료하면 회원 테이블에 저장하고 ..