본문 바로가기
C++ 200제/코딩 IT 정보

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

by vicddory 2018. 7. 19.

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

댓글