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가 붙기라 까? 미 당 매로가 까?










