티스토리 뷰
목차
비주얼스튜디오 2008 NUnit 단위 테스트 (소프트웨어 정적 분석)
참조 사이트 - 비주얼스튜디오 2008 NUnit 설정 방법 [링크]
단위 테스트(Unit Test, 소프트웨어 정적 분석)는 코드의 각 부분이 예상대로 동작하며, SW 변경에도 각 기능이 유지되며 정상적으로 동작하는지 확인하는 데 도움이 됩니다. 이 포스트에선 테스트 코드에 작은 비트를 추가하여, 단위 테스트를 실행합니다.
비주얼스튜디오 2008에 NUnit 설치를 위해 NUnit 사이트[링크]에서 최신 버전을 다운로드 합니다. 현재 최신 버전은 2.6.4입니다.
NUnit를 이용한 단위 테스트 프로젝트를 하나 새로 생성하고, 참조 추가합니다.
[소프트웨어 정적 분석 방법]
구성 요소 이름 중 nunit.framework의 런터임 버전 v2.0.5072을 선택합니다.
[소프트웨어 정적 분석 방법]
NUnit 데모 코드 (단위 테스트 코드)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | using System; using NUnit.Framework; namespace bank { public class Account { private float balance; public void Deposit(float amount) { balance += amount; } public void Withdraw(float amount) { balance -= amount; } public void TransferFunds(Account destination, float amount) { } public float Balance { get { return balance; } } } } namespace bank { [TestFixture] public class AccountTest { [Test] public void TransferFunds() { Account source = new Account(); source.Deposit(200.00F); Account destination = new Account(); destination.Deposit(150.00F); source.TransferFunds(destination, 100.00F); Assert.AreEqual(250.00F, destination.Balance); Assert.AreEqual(100.00F, source.Balance); } [Test] public void DepositFunds() { Account source = new Account(); source.Deposit(200.00F); Assert.AreEqual(200.00F, source.Balance); } } } namespace UnitTestDemo { public class MyAccountingSoftware { public static void Main() { bank.Account DemoAccount = new bank.Account(); DemoAccount.Deposit(1000.00F); DemoAccount.Withdraw(500.50F); Console.WriteLine("Our account balance is {0}", DemoAccount.Balance); } } } | cs |
단위 테스트, NUnit GUI 실행 방법
"비주얼스튜디오 2008 > 도구 > 외부 도구"를 클릭합니다.
그리고 우측의 추가를 눌러 NUnit에 대한 속성들을 지정합니다.
명령줄에는 설치된 NUnit의 파일 경로를 지정해야 합니다.
[소프트웨어 정적 분석 방법]
정상적으로 추가가 이루어지면 아래와 같이 새로운 메뉴가 추가됩니다.
[비주얼스튜디오 2008 > 도구 > NUnit] 선택
그리고 실제로 테스트를 해봅니다.
[소프트웨어 정적 분석 방법]
위와 같이 빨간불이 들어오면 실패한 경우입니다.
왜 실패했는지는 해당 라인을 참조해 보면 될 것이고, 초록색이 들어온다면 아무런 메시지가 생성되지 않습니다.
ps1. 임베디드 기기에 배포되는 프로그램의 경우 단위 테스트가 불가능합니다. 그리고 참조 추가가 다양한 파일 역시 단위 테스트가 되질 않는군요.
[소프트웨어 정적 분석 방법]
비주얼스튜디오 2008 NUnit 단위 테스트 (소프트웨어 정적 분석)