다음을 통해 공유


방법: 단위 테스트 작성

업데이트: 2007년 11월

단위 테스트를 편집하는 두 가지 이유는 단위 테스트를 직접 작성하거나 새로 생성된 단위 테스트를 편집하기 위함입니다. 새로 생성된 단위 테스트를 실행할 수는 있지만 새로 생성된 단위 테스트는 테스트에서 의미 있는 결과가 생성되도록 적절한 값으로 초기화되어야 하는 기본 콘텐츠로 만들어집니다. 생성된 단위 테스트 내에서 일반적으로 변수 할당 및 하나 이상의 Assert 문을 사용자 지정해야 합니다.

단위 테스트에서 Assert 문 사용

생성된 각 단위 테스트에서는 기본적으로 Inconclusive 메서드를 호출하며, 이 메서드가 그대로 남아 있으면 테스트가 아직 구현되지 않은 것이므로 테스트에 실패하게 됩니다. 다음 단계에서는 테스트 대상 메서드가 제대로 작동하는지 확인하는 의미 있는 코드를 추가합니다. 일반적으로 이를 수행하려면 값을 생성한 다음 Assert.AreEqual 문을 사용하여 예상되는 값과 비교합니다. 예제를 보려면 단위 테스트의 구조에서 "단위 테스트 예제"를 참조하십시오. 새로 생성된 단위 테스트에는 변경 작업을 제안하는 "To-do" 주석이 들어 있습니다.

단위 테스트에 Assert 문이 없으면 제한 시간이 초과되지 않고 예기치 않은 예외가 throw되지 않는 한 테스트에 자동으로 성공하게 됩니다. 자세한 내용은 기본 테스트 결과Assert 클래스 사용을 참조하십시오.

단위 테스트 열기 및 작성

이 단원에서는 다음 두 가지 절차를 설명합니다.

  • 첫 번째 절차에서는 기존 단위 테스트를 편집하는 방법을 설명합니다. 일반적으로 이 절차는 자동으로 생성된 단위 테스트를 준비하기 위해 사용됩니다. 방법: 단위 테스트 생성을 참조하십시오.

  • 두 번째 절차에서는 단위 테스트를 직접 만들고 작성하는 방법을 설명합니다.

기존 단위 테스트를 편집하려면

  1. 솔루션 탐색기의 해당 테스트 프로젝트에서 단위 테스트가 포함된 파일을 찾아서 연 다음 편집할 단위 테스트 메서드를 찾습니다.

    -또는-

    테스트 뷰에서 단위 테스트를 두 번 클릭합니다. 그러면 단위 테스트가 포함된 파일이 열리고 해당 단위 테스트 메서드로 스크롤됩니다.

  2. 메서드에서 변수 할당을 찾습니다.

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

    string target.owner = null; // TODO: Initialize to an appropriate value 
    
  3. 각 변수에 적절한 값을 할당합니다.

    적절한 값을 확인하려면 메서드가 호출되기 전에 해당 변수가 초기화될 수 있는 값, 메서드가 호출될 때 변수에 발생할 수 있는 변경 사항, 예상 결과 등을 고려합니다. 이 절차에 대한 예제는 연습: 단위 테스트 생성 및 실행의 단위 테스트 실행 및 편집 절차를 참조하십시오.

  4. 메서드에서 Assert 문을 찾아서 편집합니다. 필요한 경우 Assert 문을 추가합니다.

단위 테스트 프레임워크에서는 유용한 Assert 문을 융통성 있게 작성할 수 있는 다양한 Assert 클래스 및 메서드를 추가로 제공합니다. 자세한 내용은 단위 테스트 프레임워크를 참조하십시오.

단위 테스트를 직접 입력하여 만들려면

  1. 솔루션 탐색기에서 테스트 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 테스트를 클릭합니다.

    -또는-

    테스트 뷰 창을 마우스 오른쪽 단추로 클릭한 다음 새 테스트를 클릭합니다.

    그러면 새 테스트 추가 대화 상자가 나타납니다.

  2. 템플릿에서 단위 테스트를 클릭한 다음 확인을 클릭합니다.

    이름 형식이 UnitTest1.cs인 새 소스 코드 파일이 테스트 프로젝트에 테스트 프로젝트 언어로 추가됩니다. 이 파일은 다음과 같이 단위 테스트에 필요한 여러 가지를 포함하고 있습니다.

    • Microsoft.VisualStudio.TestTools.UnitTesting 네임스페이스 및 시스템 네임스페이스를 참조합니다.

    • 테스트 클래스를 포함하는 자체 네임스페이스를 정의합니다. 테스트 클래스에는 [TestClass] 특성이 있습니다.

    • 초기화 메서드 및 정리 메서드를 포함합니다. 이러한 메서드는 각각 [TestInitialize()] 및 [TestCleanup()] 특성이 있습니다.

    • [TestMethod] 특성이 있는 빈 테스트 메서드 한 개를 포함합니다. 여기서 테스트 논리를 추가합니다. 이 메서드의 이름은 기본적으로 TestMethod1()과 같은 형식입니다.

    이 창은 소스 코드 편집 창에서도 열립니다. 새(비어 있는) 테스트 메서드는 테스트 뷰 창 및 테스트 목록 편집기에 표시됩니다.

  3. 테스트 코드를 테스트 메서드에 추가합니다.

단위 테스트 프레임워크에서는 유용한 Assert 문을 융통성 있게 작성할 수 있는 다양한 Assert 클래스 및 메서드를 추가로 제공합니다. 자세한 내용은 단위 테스트 개요단위 테스트 프레임워크를 참조하십시오.

참고 항목

개념

단위 테스트 프레임워크

기타 리소스

방법: 단위 테스트 생성

단위 테스트 만들기

단위 테스트 개요

테스트 관리

테스트 실행

테스트 결과 분석