# 유닛 테스트
- 유닛테스트란 **특정 모듈**이 의도된 대로 정확히 작동하는지 검증하는 절차입니다.
- 여기서 모듈이란 보통 함수 / 메서드 / 클래스 를 뜻 합니다.
---
## 유닛 테스트의 의의
테스트는 크게 3단계로 나누어 볼 수 있습니다.

1. 유닛 테스트 : 모듈 단위의 테스트
2. 통합 테스트 : 다른 모듈과의 상호작용 테스트
3. 인수 테스트 : 유저 스토리에 맞추어 수행하는 테스트
여기서 유닛 테스트가 가지는 의의는 다음과 같습니다.
- 각각의 모듈을 테스트 함으로써 통합을 용이하게 할 수 있습니다.
- 통합 테스트 과정에서 나오는 오류를 빠르게 파악하고 리펙토링 할 수 있습니다.
- 디버깅 과정을 단축시킬 수 있습니다.
---
## 유닛 테스트 방법
.NET 에서는 MSTest unit test 를 지원합니다.
이를 이용하여 간단한 유닛테스트를 진행 해보겠습니다.
이를 사용하는 방법은 다음과 같습니다.
1. 테스트할 클래스를 생성합니다.

2. 클래스를 선언한 솔루션에 유닛 테스트 프로젝트를 추가합니다.

( 솔루션 우클릭 - 추가 - 새 프로젝트 클릭 )

검색창에 mstest 를 검색 후 MSTest 테스트 프로젝트를 선택 합니다.

생성된 기본 테스트 스크립트 입니다.
3. 프로젝트 종속성을 추가해 줍니다.

( 테스트 프로젝트의 종속성 우클릭 -> 프로젝트 참조 추가 )

일전에 작성한 프로젝트의 종속성을 추가합니다.
4. 테스트 메서드를 작성합니다.

선언한 클래스로 인스턴스를 만들어 이를 테스트해 볼 수 있습니다.
5. 테스트 탐색기 창을 열어 테스트를 실행합니다.

6. 실패한 테스트를 살펴보며 디버깅 합니다.
