방법: 단위 테스트 만들기 및 실행

개발자와 테스터는 단위 테스트를 통해 C#, Visual Basic .NET 및 C++ 프로젝트에서 클래스의 메서드에 있는 논리 오류를 빠르게 검사할 수 있습니다. 단위 테스트를 한 번만 만들면 소스 코드가 변경될 때마다 이를 실행하여 버그가 발생하지 않는지 확인할 수 있습니다.

이 항목에서는 Microsoft Visual Studio 2010 단위 테스트 도구를 사용하여 기존 코드에서 단위 테스트를 위한 기본 구조를 자동으로 생성하고, 이 기본 구조를 채울 유효성 검사를 추가하고, 테스트 범주를 만들고, 테스트 목록을 만들고, 테스트를 실행하고, 코드 검사 결과를 읽는 방법에 대해 설명합니다.

단위 테스트의 구성 요소에 대한 자세한 내용은 단위 테스트 분석을 참조하십시오.

단위 테스트 예제

이 예제는 연습: 단위 테스트 생성 및 실행 항목을 기반으로 합니다.

다음 그림에서는 단위 테스트 만들기 대화 상자를 보여 줍니다. 이 대화 상자는 메서드가 포함된 코드 파일을 마우스 오른쪽 단추로 클릭하고 단위 테스트 만들기를 클릭하면 나타납니다. 단위 테스트는 이 대화 상자의 형식 목록에서 선택하는 모든 메서드에 대해 생성됩니다.

다음 그림은 이 예제에서 Credit 및 Debit 메서드에 대해 단위 테스트가 생성될 것임을 보여 줍니다.

단위 테스트 만들기 대화 상자

단위 테스트를 생성한 후에는 코드 파일이 만들어지고 변경 내용이 솔루션 탐색기에 표시됩니다.

다음 그림에서는 단위 테스트를 만든 결과를 보여 줍니다.

아트 상태별로 제목 소유자가 필요함

  1. 단위 테스트 만들기 대화 상자에서 선택한 각 메서드에 대해 별도의 단위 테스트가 만들어집니다. 이 예제에서는 Credit 및 Debit 메서드에 대한 단위 테스트를 생성했습니다.

  2. 생성되는 각 단위 테스트에는 빈 변수와 자리 표시자 Assert 문이 있습니다. 기본 자리 표시자 Assert 문은 일반적으로 Assert.Inconclusive 문입니다.

  3. 테스트가 의미 있도록 하려면 변수를 초기화하고 자리 표시자를 적절한 Assert 문으로 바꿔야 합니다. 이 예제에서는 Credit 단위 테스트를 생성된 상태대로 두었지만 Debit 테스트 메서드의 변수를 초기화하고 Assert 문을 바꿨습니다.

  4. 단위 테스트를 처음 생성하면 솔루션에 테스트 프로젝트가 만들어집니다.

  5. 테스트하는 각 클래스에 대해 별도의 단위 테스트 파일이 테스트 프로젝트에 만들어집니다. 이 예제에서는 테스트하는 두 메서드가 모두 동일한 클래스에 속해 있습니다. 따라서 단위 테스트 파일이 BankAccountTest.cs 하나만 있습니다.

  6. 테스트를 실행한 후에는 테스트 결과 창에 결과가 표시됩니다.

단위 테스트 만들기

단위 테스트를 만드는 과정은 두 단계로 이루어집니다.

첫 번째 단계에서는 테스트할 코드의 각 메서드에 대한 테스트 메서드의 기본 버전이 포함된 단위 테스트 파일을 생성합니다. 각 기본 테스트 메서드는 빈 변수와 자리 표시자 Assert 문을 사용하여 생성됩니다.

두 번째 단계에서는 변수를 초기화하고 자리 표시자 Assert 문을 적절한 문으로 바꿉니다.

단위 테스트를 위한 기본 구조 생성

단위 테스트 만들기 대화 상자를 사용하여 테스트할 코드의 일부 또는 모든 메서드에 대한 단위 테스트를 생성할 수 있습니다.

참고

일반적으로 private, internal 및 friend와 같은 특성으로 표시된 메서드는 해당 메서드의 클래스 외부에 노출되지 않지만 Microsoft Visual Studio 2010 도구를 사용하여 단위 테스트에서 이러한 메서드에 액세스할 수 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 Private, Internal 및 Friend 메서드의 단위 테스트를 참조하십시오.

단위 테스트를 위한 기본 구조를 생성하려면

  1. Visual Studio 코드 편집기 창에서 테스트할 코드를 엽니다.

  2. (ASP.NET 서비스에만 해당) ASP.NET 웹 서비스를 테스트하려는 경우 프로젝트에 .aspx 페이지가 있는지 확인합니다. .aspx 페이지가 포함되지 않은 프로젝트의 웹 서비스에 대한 단위 테스트를 만든 경우 테스트를 실행하려고 하면 오류가 발생합니다. 자세한 내용은 ASP.NET 웹 서비스의 단위 테스트를 참조하십시오.

  3. 테스트할 네임스페이스, 클래스 또는 메서드를 마우스 오른쪽 단추로 클릭하고 단위 테스트 만들기를 클릭합니다.

  4. 단위 테스트 만들기 대화 상자에서 단위 테스트 파일에 추가할 모든 메서드의 확인란을 선택합니다.

  5. (선택 사항) 설정을 클릭하여 만들려는 단위 테스트의 기본 설정을 변경합니다. 이러한 설정은 Visual Studio 설정으로, 설정을 다시 변경하기 전까지는 사용자가 만드는 모든 단위 테스트에 적용됩니다.

    • 이름 지정 설정: 이러한 옵션을 사용하여 단위 테스트를 생성할 때 테스트 파일, 테스트 클래스 및 테스트 메서드의 이름이 지정되는 방식을 사용자 지정할 수 있습니다.

    • 기본적으로 모든 테스트를 결과 불충분으로 표시: 각 테스트 메서드에 Assert.Inconclusive() 문을 자리 표시자 Assert로 제공하려면 이 확인란을 선택합니다. 자리 표시자 Assert를 제거하려면 이 확인란의 선택을 취소합니다.

    • 문서 주석 사용: 각 테스트 메서드에 자리 표시자 주석을 제공하려면 이 확인란을 선택합니다. 자리 표시자 주석을 제거하려면 이 확인란의 선택을 취소합니다.

    • InternalsVisibleTo 특성 부여: Friend 또는 Internal로 표시된 메서드가 public 메서드인 것처럼 처리되도록 하려면 이 확인란을 선택합니다(권장). 이러한 메서드가 전용 접근자를 사용하여 테스트되도록 하려면 이 확인란의 선택을 취소합니다. 전용 접근자에 대한 자세한 내용은 Private, Internal 및 Friend 메서드의 단위 테스트를 참조하십시오.

  6. (선택 사항) 소스 코드에 액세스할 수 없는 어셈블리의 메서드에 대한 테스트를 추가하려면 어셈블리 추가를 클릭합니다. 자세한 내용은 방법: 소스 코드 없이 단위 테스트 만들기를 참조하십시오.

  7. 출력 프로젝트 상자에서 다음 중 하나를 수행합니다.

    • 새 테스트 프로젝트를 만들려면 새 프로젝트의 언어를 선택하고 확인을 클릭합니다. 새 테스트 프로젝트 대화 상자가 나타납니다. 프로젝트의 이름을 지정하거나 기본 이름을 적용한 다음 만들기를 클릭합니다.

    • 단위 테스트 만들기 대화 상자에서 선택한 메서드를 기존 테스트 프로젝트의 단위 테스트 파일에 추가하려면 드롭다운 목록에서 프로젝트를 선택하고 확인을 클릭합니다.

단위 테스트에 유효성 검사 추가

단위 테스트 파일의 각 테스트 메서드는 빈 변수와 자리 표시자 Assert 문을 사용하여 생성됩니다. 이러한 테스트는 실행할 수는 있지만 실제 데이터가 없으므로 메서드가 예상대로 동작하는지 여부를 확인할 수 없습니다. 테스트 결과가 의미 있게 하려면 변수를 초기화하고 자리 표시자 Assert 문을 해당 메서드에 적절한 Assert 문(대개 Assert.AreEqual 문)으로 바꿔야 합니다.

단위 테스트에 유효성 검사를 추가하려면

  1. 단위 테스트 파일을 열고 변수를 초기화할 단위 테스트를 찾습니다.

  2. 단위 테스트에서 변수 할당을 찾습니다.

    새로 생성된 테스트에서 변수 할당은 "TODO" 문으로 표시되어 할당을 사용자 지정하도록 알려 줍니다. 예를 들어 다음은 편집해야 하는 일반 할당입니다.

    string target.owner = null; // TODO: Initialize to an appropriate value

  3. 각 변수에 적절한 값을 할당합니다. 적절한 변수를 할당하는 예제를 보려면 연습: 단위 테스트 생성 및 실행의 "단위 테스트 실행 및 편집" 절차를 참조하십시오.

    참고

    데이터 기반 단위 테스트를 만들어 일련의 다양한 값으로 단위 테스트를 실행할 수 있습니다. 데이터 기반 단위 테스트란 데이터 소스의 각 행에 대해 반복적으로 실행되는 단위 테스트입니다. 자세한 내용은 방법: 데이터 기반 단위 테스트 만들기를 참조하십시오.

  4. 단위 테스트에서 Assert 문을 찾아 편집합니다. 사용할 수 있는 Assert 문에 대한 자세한 내용은 Assert 클래스 사용을 참조하십시오.

  5. (선택 사항) Microsoft.VisualStudio.TestTools.UnitTesting 네임스페이스의 [TestInitialize()] 및 [TestCleanup()] 메서드를 사용하여 단위 테스트에 대한 설정 및 정리 코드를 추가합니다. 단위 테스트를 생성하면 단위 테스트 파일에 "추가 테스트 특성" 섹션이 추가됩니다. 이 섹션을 확장하면 초기화 및 정리를 포함하는 데 사용할 수 있는 주석 처리된 메서드가 표시됩니다.

(선택 사항) 테스트 범주 만들기

자동화된 테스트를 테스트 범주로 범주화하여 관리할 수 있습니다. 자세한 내용은 테스트 범주를 정의하여 테스트 그룹화를 참조하십시오.

참고

테스트 목록보다 테스트 범주를 사용하는 것이 좋습니다. 테스트 범주를 사용하면 테스트 목록을 유지 관리할 필요 없이 할당된 해당 범주를 기반으로 테스트 그룹을 실행할 수 있습니다.

새 테스트 범주를 만들려면

  1. 테스트 뷰 창을 엽니다.

  2. 테스트를 선택합니다.

  3. 속성 창에서 테스트 범주를 클릭하고 맨 오른쪽 열의 줄임표(…)를 클릭합니다.

  4. 테스트 범주 창의 새 범주 추가 상자에 새 테스트 범주의 이름을 입력합니다.

  5. 추가를 클릭하고 확인을 클릭합니다.

    새 테스트 범주가 테스트에 할당되고 해당 속성을 통해 다른 테스트에 사용할 수 있게 됩니다.

(선택 사항) 테스트 목록 만들기

테스트 목록을 사용하면 단위 테스트를 논리 그룹에 모을 수 있습니다. 테스트 목록에 단위 테스트를 추가할 경우 여러 단위 테스트 파일에서 테스트를 실행할 수 있고, 빌드의 일부로 테스트를 실행할 수 있으며, 목록을 사용하여 체크 인 정책을 적용할 수 있다는 주요 이점이 있습니다. 테스트 목록에 대한 자세한 내용은 테스트 목록을 정의하여 테스트 그룹화를 참조하십시오.

참고

테스트 목록보다 테스트 범주를 사용하는 것이 좋습니다. 테스트 범주를 사용하면 테스트 목록을 유지 관리할 필요 없이 할당된 해당 범주를 기반으로 테스트 그룹을 실행할 수 있습니다.

테스트 프로젝트를 만들려면

  1. 테스트 메뉴에서 새 테스트 목록 만들기를 클릭합니다.

  2. 새 테스트 목록 만들기 대화 상자에서 목록의 이름을 입력하고 설명을 추가한 다음 테스트 목록을 배치할 위치를 선택하고 확인을 클릭합니다.

  3. 사용 가능한 테스트를 표시하려면 테스트 목록 편집기 창에서 로드된 모든 테스트를 클릭합니다.

  4. 주 창에서 추가할 각 단위 테스트를 테스트 목록으로 끕니다.

단위 테스트 실행

단위 테스트를 만든 후 언제든지 단위 테스트를 실행할 수 있습니다. 이 절차에서는 단위 테스트를 실행하는 한 가지 방법에 대해 설명합니다. 바로 가기 키나 명령줄을 사용하는 등의 다른 방법에 대한 자세한 내용은 방법: Microsoft Visual Studio에서 자동화된 테스트 실행을 참조하십시오.

단위 테스트를 실행하려면

  1. 테스트 메뉴에서 을 가리킨 다음 테스트 뷰를 클릭합니다.

  2. (선택 사항) 코드 검사 정보를 수집하려면 다음을 수행합니다.

    1. 테스트 메뉴에서 테스트 설정 편집을 가리킨 다음 현재 테스트 실행을 위한 테스트 설정을 클릭합니다.

    2. 테스트 설정 대화 상자에서 데이터 및 진단을 클릭합니다.

    3. 역할에서 테스트를 실행하는 데 사용할 역할을 선택합니다.

    4. 코드 검사를 선택하고 구성을 클릭합니다.

    5. 확인란을 선택하여 코드 검사 정보를 수집할 항목을 선택합니다.

    6. 코드 검사 정보 대화 상자에서 확인을 클릭합니다.

    7. 테스트 설정 대화 상자에서 적용을 클릭한 다음 닫기를 클릭합니다.

  3. 테스트 뷰 창에서 테스트를 하나 이상 선택합니다. 여러 개의 테스트를 선택하려면 Ctrl 키를 누른 상태에서 테스트를 클릭합니다.

  4. 테스트 뷰 창의 도구 모음에서 선택 영역 실행 단추를 클릭합니다. 테스트가 실행되고 테스트 결과 창이 열립니다.

  5. (선택 사항) 테스트에 대한 세부 정보를 보려면 테스트 결과 창에서 테스트를 마우스 오른쪽 단추로 클릭한 다음 테스트 결과 정보 보기를 클릭합니다.

  6. (선택 사항) 오류가 있는 단위 테스트 파일의 영역을 찾으려면 세부 정보 창의 오류 스택 추적에서 오류 링크를 클릭합니다.

테스트 결과를 이해하는 방법에 대한 자세한 내용은 테스트 결과 검토를 참조하십시오.

(선택 사항) 코드 검사 보기

코드 검사 정보를 수집하기로 선택한 경우 코드 검사 창을 열어 테스트하는 코드에서 단위 테스트를 통해 검사된 메서드의 백분율을 확인할 수 있습니다. 이미 실행된 테스트의 코드 검사를 확인하는 방법과 코드 검사 결과를 관리하는 방법에 대한 자세한 내용은 코드 검사 데이터 개요를 참조하십시오.

단위 테스트의 코드 검사를 보려면

  1. 테스트 결과 창의 도구 모음에서 코드 검사 결과 표시를 클릭합니다. 창을 확대해야 이 단추가 표시되는 경우도 있습니다.

  2. 코드 검사 결과 창이 열립니다.

    이 창에는 메서드가 테스트된 범위가 표시됩니다.

참고 항목

작업

방법: 부하 테스트 편집기를 사용하여 부하 테스트 시나리오에 웹 성능 테스트, 단위 테스트 및 코딩된 UI 테스트 추가

방법: 부하 테스트 편집기를 사용하여 부하 테스트 시나리오에서 웹 성능 테스트, 단위 테스트 및 코딩된 UI 테스트 제거

개념

단위 테스트 분석

단위 테스트와 C++

제네릭 메서드의 단위 테스트

ASP.NET 웹 서비스의 단위 테스트