HaPpY hApPy
1. NUnit 으로 작성하는 첫 Unit Testing! 본문
일단 크고 복작한거 다 필요 없다.
가장 간단한 예제를 보면 대충 감이 온다.
먼저 테스트를 해야 되는 코드를 구현한다.
- Class Library 프로젝트를 하나 생성하고 이름을 FileExtension 으로 정한다.
- 자동으로 생성되는 class1.cs 파일 이름을 바꾼다 => CFileExtension.cs (만약 자동으로 생성되지 않으면 하나 생성한다)
- 바꾼 파일을 아래와 같이 코딩한다.
namespace FileExtension { public class CFileExtension { public bool IsValidFileExtension(string fullFileName) { if (fullFileName.EndsWith(".BUG")) //"BUG" 다 대문자 { return true; } return false; } } }
위 코드는 테스트 "당하는" 코드이고, 이 코드를 테스트 "할" 코드, 즉 "Unit Test"를 작성하자.
참고로, 새로운 Solution을 생성할 때 마다 새로 NUnit의 dll을 불러오던지 아니면 이전에 배웠던 NuGet Package Manager를 통해서 다시 설치해야 된다. 일단 아래 방법으로 따라 해 보자, 그럼 감이 올것이다.
- Class Library 프로젝트를 하나 생성하고 이름을 FileExtension_UnitTests 로 정한다.
- 자동으로 생성되는 class1.cs 파일 이름을 바꾼다 => CFileExtensionTester.cs (만약 자동으로 생성되지 않으면 하나 생성한다)
- 위에 먼저 생성한 CFileExtension 프로젝트 Reference를 추가한다.
- 바꾼 파일을 아래와 같이 코딩한다. [에러가 발생해도 일단 따라 적자]
using FileExtension; using NUnit.Framework; namespace FileExtension_UnitTests { [TestFixture] // NUnit Test를 하는 클래스 public class CFileExtensionTester { [Test] // 해당 메소드를 테스트 하는 방법들 중 하나. 추후 하나씩 더 나올것이다. public void IsValidExtension_BadExtension_ResultTrue() { //함수 이름은 테스트함수명_테스트목록_Pass에필요한조건 //(false가 되어야 하면 ResultFalse로 주면됨) CFileExtension analyzer = new CFileExtension(); bool result = analyzer.IsValidFileExtension("SomeFile.Bug"); // "Bug" B만 대문자. Assert.True(result); //여기서 Assert는 NUnit.Framework의 Assert 클래스다. } } }
- 이전 장에서 배운 방법으로 NUnit, NUnit.Runners, NUnit Test Adapter for Vs2012 and Vs2013을 설치하자.설치할 때 Install을 누르면 아래와 같이 선택창이 나오면 FileExtension_UnitTests만 선택하자.
- 설치하면 에러가 나던 코드들이 Reference 추가로 인해 에러가 발생하지 않는것을 확인하자.
위에서 NUnit Test Adapter for VS2012 and VS2013 을 설치했을 경우 (아닌 경우 스크롤을 내려보잡!)
- 먼저 빌드를하고 에러가 없는지 확인후 메뉴에서 Test->Windows->Test Explorer 를 클릭하자.
- 아래와 같이 창이 뜨면 Run All 을 눌려서 NUnit Testing 를 하자.
결과가 fail이다..왜 그럴까??? ...이유는 소스코드를 자세히 들여다 보면 알수있다.
"SomeFile.Bug" 라고 한 부분의 Bug를 BUG로 고쳐서 다시 빌드를 하고 Run All을 눌려보자.
테스트가 pass한것을 확인 할 수 있다....구웃!
Tip!
매번 빌드때 마다 자동으로 Test를 진행하고 싶으면. 해당 버튼을 활성화 하면된답..그럼 매 빌드시 자동으로 실행된다.
위에서 NUnit Test Adapter for VS2012 and VS2013 을 설치하지 않은 경우.
현재 수정중인 프로젝트의 최상위 폴더에 들어가면 packages라는 폴더가 생성되어 있을 것이다.
packages->NUnit.Runners.2.6.3 ->tools 를 차례로 열고 nunit.exe를 실행시키자. (현재 버전은 2.6.3)
- File -> Open Project 를 클릭하고 FileExtension_UnitTests.dll 을 선택하자.
- 아래와 같이 해당 프로젝트가 불려오고 원하는 프로젝트를 선택후 Run을 누르자.
결과는 실패다! 왜 그럴까??? 갑자기 글적는게 If문 적은것 같은 느낌이다..이유는 "SomeFile.Bug" 라고 한 부분의 "Bug"를 "BUG"로 고쳐보면 알수있다...프로젝트를 다시 빌드하고 NUnit 에서 Run을 다시 눌려보자 (빌드후 약간의 시간차를 두고 해야된다)
그럼 아래와 같이 통과하는것을 볼 수 있답! 구웃드!
이렇게 첫 NUnit Test는 끝!!
'.NET > Unit Test' 카테고리의 다른 글
3. NUnit - Exception 발생해야 pass하는 NUnit Testing! (0) | 2014.08.16 |
---|---|
2. NUnit - [TestCase] Attribute (0) | 2014.08.16 |
설치편! Visual studio 에서 NUnit 설치 및 설정 하기! (0) | 2014.08.15 |
NUnit 으로 시작하는 .Net Unit Testing (0) | 2014.08.15 |