티스토리 뷰

목차

    반응형

    비주얼스튜디오 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 단위 테스트 (소프트웨어 정적 분석)

    반응형