# 유닛 테스트 - 유닛테스트란 **특정 모듈**이 의도된 대로 정확히 작동하는지 검증하는 절차입니다. - 여기서 모듈이란 보통 함수 / 메서드 / 클래스 를 뜻 합니다. --- ## 유닛 테스트의 의의 테스트는 크게 3단계로 나누어 볼 수 있습니다. ![](https://i.imgur.com/P2mWYDL.png) 1. 유닛 테스트 : 모듈 단위의 테스트 2. 통합 테스트 : 다른 모듈과의 상호작용 테스트 3. 인수 테스트 : 유저 스토리에 맞추어 수행하는 테스트 여기서 유닛 테스트가 가지는 의의는 다음과 같습니다. - 각각의 모듈을 테스트 함으로써 통합을 용이하게 할 수 있습니다. - 통합 테스트 과정에서 나오는 오류를 빠르게 파악하고 리펙토링 할 수 있습니다. - 디버깅 과정을 단축시킬 수 있습니다. --- ## 유닛 테스트 방법 .NET 에서는 MSTest unit test 를 지원합니다. 이를 이용하여 간단한 유닛테스트를 진행 해보겠습니다. 이를 사용하는 방법은 다음과 같습니다. 1. 테스트할 클래스를 생성합니다. ![](https://i.imgur.com/8yZXxAo.png) 2. 클래스를 선언한 솔루션에 유닛 테스트 프로젝트를 추가합니다. ![](https://i.imgur.com/8pLTIK9.png) ( 솔루션 우클릭 - 추가 - 새 프로젝트 클릭 ) ![](https://i.imgur.com/26izYzM.png) 검색창에 mstest 를 검색 후 MSTest 테스트 프로젝트를 선택 합니다. ![](https://i.imgur.com/Wpa5hCP.png) 생성된 기본 테스트 스크립트 입니다. 3. 프로젝트 종속성을 추가해 줍니다. ![](https://i.imgur.com/JsCjzNj.png) ( 테스트 프로젝트의 종속성 우클릭 -> 프로젝트 참조 추가 ) ![](https://i.imgur.com/gYs99mG.png) 일전에 작성한 프로젝트의 종속성을 추가합니다. 4. 테스트 메서드를 작성합니다. ![](https://i.imgur.com/QltiMVq.png) 선언한 클래스로 인스턴스를 만들어 이를 테스트해 볼 수 있습니다. 5. 테스트 탐색기 창을 열어 테스트를 실행합니다. ![](https://i.imgur.com/6tFu3kR.png) 6. 실패한 테스트를 살펴보며 디버깅 합니다. ![](https://i.imgur.com/1O3iMsO.png)