---
# System prepended metadata

title: 유닛 테스트

---

# 유닛 테스트

- 유닛테스트란 **특정 모듈**이 의도된 대로 정확히 작동하는지 검증하는 절차입니다.

- 여기서 모듈이란 보통 함수 / 메서드 / 클래스 를 뜻 합니다.

---

## 유닛 테스트의 의의

테스트는 크게 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)
