프로젝트를 할때 함수별 또는 클래스 별로 단위 테스트를 진행하고 문제가 있는지 검증을 해보면 좀더 완성도 높은 프로그램을 만들 수 있다.
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(에이콘) 서적
'Visual Studio' 카테고리의 다른 글
Visual studio 2017에서 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation (0) | 2018.05.22 |
---|---|
C# Visual studio2017 NuGet 패키지 추가 하기(Tuple 패키지 추가) (0) | 2018.05.06 |
Visual studio 2017 C# 프로젝트 생성하기 (0) | 2018.05.01 |
Visual studio 2017 C, C++ 콘솔 프로젝트 생성 하기 (0) | 2018.05.01 |
C# using 네임스페이스(namespace) 자동으로 추가하기(visual studio 2017) (0) | 2018.04.18 |