1. 법 (Using C++) ¶
- 먼 로를 Managed C++ 래 라브러리로 만든다.
- Test Fixture 될 래 는 TestFixture, Test Attribute 를 붙다.
- 가 C/C++로 다, #using 다가 NUnit 깔린 더 bin 더를 다.
- 된 dll 긴다.
- NUnit 깔린 더 bin 보면 NUnit-gui.exe 다. 나 dll 로딩고 run면 들 다.
- 는 무 각 만들고, 는 만.. 그냥 법 보는 까 경 .
// NUnit6.h #pragma once #using <nunit.framework.dll> using namespace System; using namespace NUnit::Framework; namespace NUnitSamples { [TestFixture] public __gc class Calculator { int a, b; public: [SetUp] void Init(); [Test] void Add(); [Test] void Sub(); [Test] void Mul(); [Test] void Div(); }; }
// NUnit6.cpp #include "stdafx.h" #include "NUnit6.h" namespace NUnitSamples { void Calculator::Init() { a = 5; b = 7; } void Calculator::Add() { Assertion::AssertEquals(12, a+b); } void Calculator::Sub() { Assertion::AssertEquals(-2, a-b); } void Calculator::Mul() { Assertion::AssertEquals(35, a*b); } void Calculator::Div() { Assertion::AssertEquals(1.4, a/b); } }
2. ¶
- 더다 다 구 된다. 만 같 cpp 만들 는것같다. 그러면 Test다고 된다.
- namespace 귀면 만들 된다.
- 결
// NUnit6.h #pragma once #using <nunit.framework.dll> using namespace System; using namespace NUnit::Framework; [TestFixture] public __gc class Calculator { int a, b; public: [SetUp] void Calculator::Init() { a = 5; b = 7; } [Test] void Calculator::Add() { Assertion::AssertEquals(12, a+b); } [Test] void Calculator::Sub() { Assertion::AssertEquals(-2, a-b); } [Test] void Calculator::Mul() { Assertion::AssertEquals(35, a*b); } [Test] void Calculator::Div() { Assertion::AssertEquals(1.4, a/b); } };
// NUnit6.cpp #include "stdafx.h" #include "NUnit6.h"
3. MFC 기 ¶
VC++ 7.0 MFC NUnit 보. 것보다 방법 듯데... 군 방법밖는 만들내 못다.
- 단 MFC 로를 만든다. 것 메로라고 .
- 루 Managed C++ Library 로를 로 가다. 것 로라고 .
- 로 로 들가 #using nunit\bin더를 다.
- 로 로 들가 디렉리 메로 더를 .
- 메로 가 Managed C++ Extension 다.
메로 만든 래를 로 고 다. 떻게 까? 군 #include <domain.h> 렇게 고, 래 .h랑 .cpp 면 될 다. 것땜 밤부 다. 렇게만 면 되고... 로 만든 래를 단 보.
#pragma once class CDomain { public: CDomain(void); ~CDomain(void); int add(int a, int b); int mult(int a, int b); };대로 면 렇게 면 될것다. 만 로는 Managed C++ Extensions다. 것 C++ .Net Platform 로그래밍 기 Microsoft C++ 문법 된 가 문법 놓다. 를 NUnit C++ 드 근 다. 경 NUnit 검 래 근기 다과 같 래 __gc 를 붙 다.
#pragma once public __gc class CDomain { public: CDomain(void); ~CDomain(void); int add(int a, int b); int mult(int a, int b); };__gc 가 부는 능력과 대는 __gc 고. NUnit 대 래는 무 로 근 다. 래 내 보.
// TestCase.h #pragma once #using <nunit.framework.dll> using namespace System; using namespace NUnit::Framework; #include "Domain.h" // 디렉리 메로 더를 놨므로 가능 namespace TestCase { [TestFixture] public __gc class Class1 { private: CDomain* m_pD; // Only Pointer public: [SetUp] void init() { m_pD = new CDomain; // delete 다. } [Test] void testAdd() { Assertion::AssertEquals(7, m_pD->add(3,4)); } [Test] void testMult() { Assertion::AssertEquals(12, m_pD->mult(3,4)); } }; }렇게 면 된다. 내느라 다. 그런 미로... NUnit 많 달라. 나 더 단고 방법 면 려 .
경 Unmanaged C++ 드 대 다. , MFC로 된 로그램라, .Net Platform 는 곳는 동 다. (로 __gc 가 므로)
류민 NUnit 과 Unmanged C++ 결 게는 못다. Managed C++로 Unmanged C++ 로 두개를 만들 Managed C++ 드 NUnit Unmanaged C++ 근 드를 다. 만, .Net Platform 미과, Managed C++ Extension 몰, 로 관리 문 봉 곧 벽 부딪다. 둘 다.
.. gc를 면 닷 랫는 곳는 가 겠. 그러면 방법 떤가? 단 때는 래 __gc를 붙? 나 배때는 __gc를 는 겁다. 물론 Managed C++ Extensions 문법 면 되겠.(gc빼고) 매로를 면 떻게 될 같기 데... --
는 Managed C++ 깊 공부 보 , 모르겠다. 것 __gc를 붙다 때다 는 문 가 다.
그것 떠나, MFC를 면 를 는 것 미 려면, MFC 로 로그램 동면, 를 는데, MFC Frameworks Managed C++ 모드로 되고, 돌가는, 것 문다. 된다면, MS 모든 MFC class __gc가 붙기라 까? 미 당 매로가 까?