비주얼스튜디오 2008 NUnit 단위 테스트 (소프트웨어 정적 분석)

비주얼스튜디오 2008 NUnit 단위 테스트 (소프트웨어 정적 분석)


소프트웨어 정적 분석 NUnit



단위 테스트(Unit Test, 소프트웨어 정적 분석)는 코드의 각 부분이 예상대로 동작하며, SW 변경에도 각 기능이 유지되며 정상적으로 동작하는지 확인하는 데 도움이 됩니다. 이 포스트에선 테스트 코드에 작은 비트를 추가하여, 단위 테스트를 실행합니다.


비주얼스튜디오 2008에 NUnit 설치를 위해 NUnit 사이트[링크]에서 최신 버전을 다운로드 합니다. 현재 최신 버전은 2.6.4입니다.

NUnit를 이용한 단위 테스트 프로젝트를 하나 새로 생성하고, 참조 추가합니다.


비주얼스튜디오 2008 NUnit[소프트웨어 정적 분석 방법]


구성 요소 이름 중 nunit.framework의 런터임 버전 v2.0.5072을 선택합니다.


NUnit 단위 테스트 (소프트웨어 정적 분석)[소프트웨어 정적 분석 방법]


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 정적분석[소프트웨어 정적 분석 방법]


정상적으로 추가가 이루어지면 아래와 같이 새로운 메뉴가 추가됩니다.


비주얼스튜디오 2008 NUnit 단위 테스트 (소프트웨어 정적 분석)[비주얼스튜디오 2008 > 도구 > NUnit] 선택


그리고 실제로 테스트를 해봅니다.


NUnit 비주얼스튜디오 2008[소프트웨어 정적 분석 방법]


위와 같이 빨간불이 들어오면 실패한 경우입니다.


왜 실패했는지는 해당 라인을 참조해 보면 될 것이고, 초록색이 들어온다면 아무런 메시지가 생성되지 않습니다.


ps1. 임베디드 기기에 배포되는 프로그램의 경우 단위 테스트가 불가능합니다. 그리고 참조 추가가 다양한 파일 역시 단위 테스트가 되질 않는군요.


비주얼스튜디오 2008 NUnit 단위 테스트[소프트웨어 정적 분석 방법]


비주얼스튜디오 2008 NUnit 단위 테스트 (소프트웨어 정적 분석)

댓글(0)

Designed by JB FACTORY