프로젝트를 할때 함수별 또는 클래스 별로 단위 테스트를 진행하고 문제가 있는지 검증을 해보면 좀더 완성도 높은 프로그램을 만들 수 있다.


Microsoft Visual Studio 2017에서 이런 단위 테스트를 어떻게 하는지 알아보자.


클래스를 만들어 그에 속한 함수들을 검증해보는 단위 테스트 프로젝트를 만들어 보자.


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




2. Visual C# -> .NET Standard -> 클래스 라이브러리(.NET Standard) -> 라이브러리 이름 지정 -> 확인 클릭






3. 클래스의 이름을 원하는 이름으로 변경하기




4. 아래와 같은 확인창이 뜨면 예(Y) 클릭 




5. 라이브러리에 클래스와 코드를 작성 -> Ctrl + s 로 저장



- 코드 -

using System;

namespace AddLib
{
    public class AddClass
    {
		public double double_add(double a, double b)
		{
			return a + b;
		}
		public int int_add(int a, int b)
		{
			return a * b; //테스트를 위해 오타 작성
		}
	}
}



이제 위에서 작성한 코드를 테스트 하는 단위 테스트 프로젝트를 만들자


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




2. visual C# -> NET Core -> xUnit 테스트 프로젝트 선택 -> 프로젝트 이름 입력 -> 확인 클릭 




3. 단위 테스트 프로젝트에 이전에 작성한 클래스를 추가한다. 

솔루션 탐색기 -> 단위 테스트 프로젝트에 종속성 -> 참조 추가




4. 이전에 테스트용으로 만든 프로젝트 추가




5. 단위테스트 프로젝트에 테스트 코드 작성



- 코드 -


using System;
using Xunit;
using AddLib; //추가
namespace XUnitTestProject1
{
    public class UnitTest1
    {
        [Fact]
        public void Test1()
        {
			double a = 3;
			double b = 4;
			double expected = 7;
			var calc = new AddClass();
			var actual = calc.double_add(a, b);
			Assert.Equal(expected, actual);
		}
		[Fact]
		public void Test2()
		{
			int a = 3;
			int b = 4;
			int expected = 7;
			var calc = new AddClass();
			var actual = calc.int_add(a, b);
			Assert.Equal(expected, actual);
		}
	}
}


6. 단위 테스트 시작

테스트 -> 창 -> 테스트 탐색기




7. 테스트 탐색기 -> 아래 그림과 같이 테스트 실행




8. 아래와 같이 테스트 결과 확인

예상한대로 한개의 에러가 발생하였다.



참고 : 크로스 플랫폼 개발을 위한 C# 7과 닷넷 코어 2.0(에이콘) 서적



Posted by 꿈만은공돌
,