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

클래스의 단위 테스트와 ASP.NET 웹 서비스의 단위 테스트 사이에는 몇 가지 차이점이 있습니다. 가장 중요한 점은 프로젝트에 .aspx 파일이 포함되어야 한다는 것입니다. 이 항목에서는 프로젝트에 .aspx 파일을 포함하는 방법과 ASP.NET 웹 서비스에 대한 단위 테스트를 만들 때 테스트 프로젝트에서 수행되는 작업에 대해 설명합니다.

웹 사이트에 대해 성능 테스트를 실행하는 방법에 대한 자세한 내용은 웹 성능 테스트 만들기 및 편집을 참조하십시오. 클래스의 단위 테스트에 대한 자세한 내용은 방법: 단위 테스트 만들기 및 실행을 참조하십시오.

사전 요구 사항

다음 IIS 구성 요소를 설치했는지 확인합니다.

IIS 6 메타베이스 및 IIS 6 구성 호환성

프로젝트에 .aspx 파일이 있는지 확인

단위 테스트를 실행하려면 ASP.NET 웹 서비스가 포함된 프로젝트에 .aspx 파일이 있어야 합니다. .aspx 파일이 없어도 외관상 단위 테스트가 만들어진 것으로 보일 수 있지만 이러한 단위 테스트를 실행하려고 하면 웹 요청이 완료되었다는 오류 메시지가 나타납니다. 하지만 테스트가 실제로 실행되지는 않았습니다.

.aspx 파일을 추가하려면

  1. 솔루션 탐색기에서 ASP.NET 웹 서비스가 포함된 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 클릭한 다음 새 항목을 클릭합니다.

  2. 새 항목 추가 대화 상자의 설치된 템플릿에서 을 클릭합니다.

  3. 웹 템플릿 목록에서 Web Form을 클릭하고 추가를 클릭합니다.

WebForm1.aspx, WebForm1.aspx.cs 및 WebForm1.aspx.designer.cs라는 세 개의 새 파일이 프로젝트에 추가됩니다. 이러한 파일을 수정하거나 사용할 필요는 없습니다.

ASP.NET 웹 서비스에 대한 단위 테스트를 생성할 때 수행되는 작업

다음 그림에서는 간단한 ASP.NET 웹 서비스 프로젝트에 대해 생성되는 테스트 메서드를 보여 줍니다. 단위 테스트를 만들 때 수행되는 보다 일반적인 변경 작업에 대한 자세한 내용은 단위 테스트 분석을 참조하십시오.

ASP.NET 단위 테스트 메서드

ASP.NET 단위 테스트 메서드

  1. 모든 단위 테스트는 [TestMethod ()] 특성을 사용하여 생성됩니다.

  2. [Host Type ()] 특성은 단위 테스트가 실행될 호스트 어댑터를 지정합니다. 이 특성은 변경할 필요가 없습니다.

  3. [AspNetDevelopmentServerHost()] 특성은 ASP.NET Development Server가 테스트의 호스트 서버일 때 사용할 설정을 지정합니다. 이 특성은 ASP.NET 웹 서비스가 IIS 프로세스 대신 파일 시스템에서 실행될 경우에만 포함됩니다. 이 특성은 변경할 필요가 없습니다.

  4. [UrlToTest()] 특성은 단위 테스트 대상인 ASP.NET 웹 서비스의 URL을 지정합니다.

  5. 나머지는 테스트 메서드의 본문입니다. 필요한 경우 변수를 초기화하고 테스트 메서드의 Assert를 편집할 수 있습니다.

참고

여기에 설명된 특성에 대한 자세한 내용은 다음을 참조하십시오.

Microsoft.VisualStudio.TestTools.UnitTesting.

Windows Vista를 실행 중인 경우에는 관리자 권한으로 Visual Studio를 실행하십시오.

Windows Vista를 실행하는 경우에는 Visual Studio를 관리자 권한으로 실행해야 ASP.NET 단위 테스트를 실행할 수 있습니다. Visual Studio를 일반 사용자로 실행해도 웹 사이트가 만들어지고 ASP.NET 테스트가 만들어지며 실행되지만 테스트가 실패합니다. Visual Studio를 관리자 권한으로 실행하려면 시작 메뉴에서 Microsoft Visual Studio 2010을 마우스 오른쪽 단추로 클릭한 다음 관리자 권한으로 실행을 클릭합니다.

IIS를 기본 사용자 이외의 사용자 권한으로 실행할 경우 필요한 모든 사용 권한을 사용할 수 있는지 확인하십시오.

ASP.NET 웹 서비스를 만들 때는 파일 시스템, HTTP 또는 FTP 중 한 위치를 선택합니다. 파일 시스템을 선택하면 ASP.NET Development Server 프로세스가 사용됩니다. HTTP 또는 FTP를 선택하면 IIS 프로세스가 사용됩니다.

ASP.NET 웹 서비스가 IIS 프로세스에서 실행되는 경우에는 보안을 위해 단위 테스트를 기본 사용자가 아닌 사용자 권한으로 실행할 수 있습니다. 기본 사용자가 아닌 사용자는 다른 프로세스 ID입니다.

예를 들어 ASP.NET 웹 서비스에서 폴더, 파일 또는 데이터베이스 등의 컴퓨터 리소스에 액세스해야 하는 경우 정확히 해당 리소스에 대한 사용 권한만 갖도록 실행할 수 있습니다.

웹 서비스에 기본 사용자가 아닌 사용자에게는 없는 사용 권한이 필요하면 단위 테스트가 실패할 수 있습니다. 예를 들어 기본 사용자가 아닌 사용자 권한으로 실행 중인 ASP.NET 프로세스의 사용 권한이 제한되어 있지만 이 프로세스에서 %WINDIR%\Temp 폴더에 임시 파일을 생성해야 할 수 있습니다. %WINDIR%\Temp에 대한 기본 권한을 통해 임시 파일을 생성할 수 있는 충분한 액세스 권한이 프로세스에 부여되지 않으면 이 작업에 실패하게 됩니다. 이러한 경우 단위 테스트 실행에 성공하려면 프로세스에 %WINDIR%\Temp 폴더에 대한 보다 높은 권한을 부여해야 합니다.

참고 항목

참조

Microsoft.VisualStudio.TestTools.UnitTesting

개념

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

단위 테스트 분석