C #. MS Visual Studio에서 단위 테스트를 생성하는 예제

  1. 콘텐츠
  2. 실행
  3. 2. Program.cs 모듈 텍스트 준비하기
  4. 2.2. 프로그램 클래스 공개
  5. 3. 테스트 된 프로그램 목록
  6. 4. 테스트 만들기
  7. 4.1. 솔루션에 새 프로젝트 추가
  8. 4.2. 솔루션 구조
  9. 4.3. "UnitTest1.cs"파일의 텍스트. 속성 [TestMethod] 및 [TestClass]
  10. 4.4. UnitTest1 모듈의 텍스트를 변경합니다. 테스트 메소드의 이름 변경하기
  11. 4.5. MinApp 프로젝트를 TestMinApp 프로젝트에 연결하기
  12. 4.6. UnitTest1.cs 모듈 텍스트 변경
  13. 4.6.2. TestMin () 메서드 텍스트
  14. 4.7. UnitTest1.cs 모듈 텍스트
  15. 5. 테스트를 실행하고 테스트 결과를 확인하십시오.
  16. 6. 그 결과. 프로젝트 간의 상호 작용

이 항목에서는 콘솔 응용 프로그램과 같은 응용 프로그램의 Microsoft Visual Studio 2010 (C #)에서 간단한 단위 테스트를 만드는 단계별 프로세스에 대해 설명합니다. 이 예제를 사용하여 자신 만의 단위 테스트를 만드는 방법을 배울 수 있습니다. 이 예제는 또한 Assert 클래스를 사용하여 함수의 작동을 테스트하는 방법을 보여줍니다.

콘텐츠

문제의 상태

콘솔 응용 프로그램과 같은 응용 프로그램의 경우 세 가지 숫자의 최대 요소를 결정하는 Min () 함수의 작동을 테스트하는 Unit 테스트를 개발하십시오.

Min () 함수의 경우 TestMin ()으로 테스트 메서드를 설정합니다. 기능을 확인하십시오.

실행

1. 콘솔 응용 프로그램 템플리트를 사용하여 응용 프로그램 만들기

실행을 위해 Microsoft Visual Studio 2010을 실행합니다. Console Application 패턴을 사용하여 프로젝트를 만들려면 다음 명령 시퀀스를 호출해야합니다.

파일 -> 새로 만들기 -> 프로젝트 ...

결과적으로 새 프로젝트 창이 열립니다. 이 창에서 그림 1과 같이 콘솔 응용 프로그램 템플릿을 선택합니다. Visual C # 탭에서 템플릿이 선택됩니다.

Visual C # -> 콘솔 응용 프로그램

Visual C # -> 콘솔 응용 프로그램

도 4 1. "새 프로젝트"창. 콘솔 응용 프로그램 유형의 응용 프로그램 선택

2. Program.cs 모듈 텍스트 준비하기

2.1. 모듈 텍스트에 Min () 함수 추가

Program 클래스의 본문에 Min () 함수의 텍스트를 추가하십시오.

이 함수는 public (static) 및 public으로 선언됩니다. Min () 함수 텍스트

public static int Min (int a, int b, int c) {int min = a; if (min> b) min = b; if (min> c) min = c; return min; }

public static int Min (int a, int b, int c) {int min = a;  if (min> b) min = b;  if (min> c) min = c;  return min;  }

도 4 2. MS Visual Studio 2010 창의 "Program.cs"모듈보기

2.2. 프로그램 클래스 공개

Program 클래스의 Min () 함수에 액세스하려면이 클래스를 공개적으로 사용할 수 있도록해야합니다. 이렇게하려면 클래스를 선언하기 전에 public 키워드를 정의해야합니다.

... namespace MinApp {public class Program {// 클래스 메소드 // ...}} ...

그 후, 테스트 프로그램이 준비되었습니다.

3. 테스트 된 프로그램 목록

현재 테스트중인 프로그램의 목록은 다음과 같습니다.

시스템 사용; using System.Collections.Generic; using System.Linq; using System.Text; 네임 스페이스 MinApp {public class Program {public static int Min (int a, int b, int c) {int min = a; if (min> b) min = b; if (min> c) min = c; return min; } static void Main (string [] args) {Console.WriteLine ( "C #의 단위 테스팅 데모"); }}}

이 프로그램은 다른 테스트 모듈에서 테스트되기 때문에 Main () 함수에 다른 것을 입력 할 필요가 없습니다. 문제의 조건에 따라 Min () 함수의 작동을 테스트해야하기 때문입니다. 그리고 이것은 테스트 모듈에서 수행됩니다. 현재 우리 프로그램은 테스트 준비가되어 있습니다.

4. 테스트 만들기

이 테스트는 솔루션 (솔루션)의 별도 프로젝트 (프로젝트)에서 생성됩니다. 테스트중인 프로그램은 그것에 대해 알지 못합니다. 테스트 할 프로그램 (테스트 프로그램)은 테스트중인 프로그램의 기능을 호출합니다. 우리의 경우, 테스트 프로그램은 함수를 호출 할 것이다.

int Min (int, int, int);

4.1. 솔루션에 새 프로젝트 추가

이 솔루션 (솔루션)의 경우 명령을 사용하여 새 프로젝트를 추가해야합니다.

파일 -> 추가 -> 새 프로젝트 ...

새 프로젝트를 생성하는 창은 그림 3과 같습니다.

도 4 3. 테스트 프로젝트 유형의 프로젝트를 생성하기위한 창

Visual C # 템플릿 그룹 -> 테스트가 창에서 선택됩니다. 표시된 템플릿에서 "프로젝트 테스트"프로젝트 템플릿이 선택됩니다. "이름"필드에는 프로그램을 테스트 할 프로젝트의 이름이 표시됩니다. 예를 들어, TestMinApp를 설정해야합니다. 프로젝트는 별도의 폴더 "E : \ Test \ MinApp"에 있습니다.

프로젝트는 별도의 폴더 E : \ Test \ MinApp에 있습니다

도 4 4. 모듈 UnitTest1.cs의 텍스트. TestMinApp 및 MinApp 프로젝트가 표시된 솔루션 탐색기 유틸리티 창

4.2. 솔루션 구조

그림 4에서 볼 수 있듯이 Solution Explorer 유틸리티에는 Solution Items 구조가 표시됩니다.이 구조에는 두 개의 프로젝트가 있습니다.

  • 프로젝트 MinApp. 이것은 Min () 함수가있는 Console Application 템플리트를 사용하여 작성한 프로젝트로서 항의하고 싶습니다.
  • TestMinApp 프로젝트. 이 프로젝트는 MinApp 프로젝트의 기능을 테스트하도록 설계되었습니다. Min () 함수를 테스트하는 프로그램 코드는 TestMinApp 프로젝트의 UnitTest1 프로젝트 파일에 입력됩니다.

두 프로젝트는 서로 독립적으로 수행 될 수 있습니다.

4.3. "UnitTest1.cs"파일의 텍스트. 속성 [TestMethod] 및 [TestClass]

TestMinApp 프로젝트에서 UnitTest1.cs라는 테스트 파일이 주요 관심사입니다. 이 파일에는 MinApp 프로젝트의 기능을 테스트하는 메소드가 들어 있습니다. TestMinApp 프로젝트에는 테스트가 포함 된 파일 (예 : UnitTest2.cs, UnitTest3.cs 등)이 포함될 수 있습니다.

Microsoft Visual Studio 2010에서 생성 된 UnitTest1.cs 파일의 목록은 다음과 같습니다.

시스템 사용; using System.Text; using System.Collections.Generic; using System.Linq; Microsoft.VisualStudio.TestTools.UnitTesting을 사용하여; public class UnitTest1 {public // UnitDest1 () {// // TODO : 여기에 생성자 논리를 추가 //} private TestContext testContextInstance; /// <summary> /// 테스트 컨텍스트를 가져 오거나 설정합니다. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = value; }} #region 추가 테스트 속성 // 테스트를 사용할 수 있습니다 // // ClassInitialize // 사용 [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {// // 클래스의 모든 테스트가 실행 된 후 ClassCleanup을 사용하여 코드를 실행합니다 // [ClassCleanup ()] // public static void MyClassCleanup () {} // // TestInitialize를 사용합니다. 각 테스트를 실행하기 전에 코드를 실행하려면 // [TestInitialize ()] // public void MyTestInitialize () {} // // TestCleanup을 사용합니다. ) {} // #endregion [TestMethod] public void TestMethod1 () {// // TODO : 여기에 테스트 로직 추가 //}}}

위의 코드에서 알 수 있듯이 파일에는 UnitTest1이라는 클래스가 있습니다. 이 클래스에는 TestMethod1 ()이라는 공용 메서드가 있습니다. TestMethod1 () 메소드를 구현하기 전에 [TestMethod] 속성이 배치됩니다. 즉, 메소드 본문에서 MinApp 프로젝트의 기능을 테스트 할 코드를 입력해야합니다.

이 수업에서는 여러 모듈에서 다른 기능을 테스트 할 수있는 여러 가지 메소드를 입력 할 수 있습니다. 가장 중요한 점은 이러한 메소드가 [TestMethod] 속성으로 표시된다는 것입니다.

4.4. UnitTest1 모듈의 텍스트를 변경합니다. 테스트 메소드의 이름 변경하기

UnitTest1.cs 모듈에서 [TestMethod] 특성으로 표시된 메서드의 이름을 변경하고 새 메서드를 추가 할 수 있습니다. 이 경우 UnitTest1.cs 모듈의 텍스트에서 TestMethod1 () 메서드의 이름을 TestMin ()으로 바꿔야합니다.

변경이 끝나면 UnitTest1.cs 파일의 모듈에 대한 약식 텍스트가 다음과 같이됩니다.

시스템 사용; using System.Text; using System.Collections.Generic; using System.Linq; Microsoft.VisualStudio.TestTools.UnitTesting을 사용하여; 네임 스페이스 TestMinApp {/// <summary> /// UnitTest1에 대한 요약 설명 /// </ summary> [TestClass] public class UnitTest1 {... [TestMethod] public void TestMin () {// // TODO : 테스트 추가 논리는 여기 //}}}

4.5. MinApp 프로젝트를 TestMinApp 프로젝트에 연결하기

TestMinApp 프로젝트에서 Min () 함수 (MinApp 프로젝트)에 액세스하려면이 함수가 위치한 네임 스페이스를 연결해야합니다.

이를 위해 먼저 TestMinApp 프로젝트의 컨텍스트 메뉴를 호출해야합니다. 그런 다음 컨텍스트 메뉴에서 "참조 추가 ..."명령을 호출해야합니다 (그림 5).

명령을 호출해야합니다 (그림 5)

도 4 5. 팀 "참조 추가 ..."

결과적으로 Add Reference 창이 열리고 MinApp 프로젝트를 선택해야합니다.

도 4 6. "참조 추가"창. 프로젝트 연결 MinApp

작업이 완료되면 MinApp 프로젝트 기능을 TestMinApp 프로젝트에서 사용할 수 있습니다.

작업이 완료되면 MinApp 프로젝트 기능을 TestMinApp 프로젝트에서 사용할 수 있습니다

도 4 7. 연결된 MinApp 프로젝트가있는 References 탭

4.6. UnitTest1.cs 모듈 텍스트 변경
4.6.1. UnitTest1.cs 모듈에 MinApp 네임 스페이스 추가하기

이 단계에서 UnitTest1.cs 모듈에서 using 지시문을 사용하여 MinApp 네임 스페이스를 추가해야합니다.

시스템 사용; using System.Text; using System.Collections.Generic; using System.Linq; Microsoft.VisualStudio.TestTools.UnitTesting을 사용하여; MinApp 사용 네임 스페이스 TestMinApp {...}

4.6.2. TestMin () 메서드 텍스트

TestMin () 메서드의 텍스트에 다음 코드를 입력합니다.

... [TestMethod] public void TestMin () {// // TODO : 여기에 테스트 로직 추가 // int min; min = 프로그램 .Min (3, 4, 5); 주장 .AreEqual (2, 분); } ...

4.7. UnitTest1.cs 모듈 텍스트

UnitTest1.cs 모듈 전체의 텍스트는 다음과 같습니다.

시스템 사용; using System.Text; using System.Collections.Generic; using System.Linq; Microsoft.VisualStudio.TestTools.UnitTesting을 사용하여; MinApp 사용 public class UnitTest1 {public // UnitDest1 () {// // TODO : 여기에 생성자 논리를 추가 //} private TestContext testContextInstance; /// <summary> /// 테스트 컨텍스트를 가져 오거나 설정합니다. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = value; }} #region 추가 테스트 속성 // 테스트를 사용할 수 있습니다 // // ClassInitialize // 사용 [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {// // 클래스의 모든 테스트가 실행 된 후 ClassCleanup을 사용하여 코드를 실행합니다 // [ClassCleanup ()] // public static void MyClassCleanup () {} // // TestInitialize를 사용합니다. 각 테스트를 실행하기 전에 코드를 실행하려면 // [TestInitialize ()] // public void MyTestInitialize () {} // // TestCleanup을 사용합니다. ) {} // #endregion [TestMethod] public void TestMin () {// // TODO : 여기에 테스트 로직 추가 // int min; min = 프로그램 .Min (3, 4, 5); 주장 .AreEqual (2, 분); }}}

5. 테스트를 실행하고 테스트 결과를 확인하십시오.

Microsoft Visual Studio 2010에서는 Unit 테스트를 사용하기 위해 Test라는 특수 명령 메뉴가 구현되었습니다.

실행 테스트를 실행하려면 명령 중 하나를 선택하십시오.

현재 컨텍스트에서 테스트 -> 실행 -> 테스트

또는

테스트 -> 실행 -> 솔루션의 모든 테스트

(그림 8).

도 4 8. start test 명령을 호출하고 결과를 봅니다.

테스트를 실행 한 후 테스트 결과 창 하단에서 결과를 볼 수 있습니다. 그림에서 알 수 있듯이 테스트는 통과되지 않습니다. 이것은 Assert.AreEqual () 함수에서 우리가 숫자 2와 3을 비교하기 때문에 논리적입니다. 여기서 숫자 2는 3 대신 특별히 도입되었습니다.

2 번 대신 3 번 (최소 3, 4, 5 번)의 정답을 입력하면 테스트가 통과됩니다 (그림 9). 이 경우 TestMin () 메서드의 텍스트는 다음과 같습니다.

... [TestMethod] public void TestMin () {// // TODO : 여기에 테스트 로직 추가 // int min; min = 프로그램 .Min (3, 4, 5); 주장하기 .AreEqual (3, min); } ...

결과 창은 그림 9와 같습니다.

도 4 9. 정답을 입력하면 사례에 대한 테스트 결과

이제이 경우 Min () 함수가 올바르게 작동한다고 결론을 내릴 수 있습니다.

6. 그 결과. 프로젝트 간의 상호 작용

이 백서에서는 솔루션에 두 개의 프로젝트가 형성됩니다. 하나의 MinApp 프로젝트는 테스트하려는 Min () 함수를 포함합니다. 두 번째 프로젝트 인 TestMinApp에는 테스트 방법이 포함되어 있습니다.

Microsoft Visual Studio 2010에서 각 프로젝트는 다른 메뉴 명령을 사용하여 시작됩니다. 따라서 MinApp 프로젝트는 Run 메뉴에서 표준 방식으로 시작됩니다. 그리고 TestMinApp 프로젝트는 특별한 테스트 메뉴에서 시작됩니다.

관련 주제