U E D R , A S I H C RSS

NUnit/C++예제


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�� ����. �� �� �� ��������... ����군 �������� ���� ����.
  1. ���� MFC ���������� ������. �� ��������������고 ��.
  2. �� �������� Managed C++ Library ���������� �� �����. �� ����������������고 ��.
  3. ������ ���������� �������� ���� #using ������ nunit\bin���� ����.
  4. ������ ���������� �������� ���� ������������ ���� �������������� ���� ������.
  5. �������������� ������ ��� 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�� , �������� ��� ���� ������ ������ ����. �� ������ ������ ��.

Unmanaged C++���� ��� ���� �� Unmanaged C++ Project ��개�� ������, ���� �������� assert �� �� ������ Test Framework �� ������ ������ ������.
--NeoCoin

�.. gc�� �� ���� ���������� 곳������ �� ��� ��겠����. 그�� �� �����? ���� �������� ������������ __gc�� ����? ������ ������ __gc�� ���� 겁����. ���� Managed C++ Extensions�� ���� �� ��겠��.(gc��고) �������� �� �� ��거 ��� ��... --����

������ Managed C++�� 깊�� 공 ��, �� ��. __gc�� �� ���� �� ������ ����� ����.

그��� ������, MFC�� ���� �������� �� � ���� �� ��, MFC �� ��������그�� ����, �������� �� ������, MFC Frameworks Managed C++ ���� ���� ����고, �� ������, ������. ����, MS���� �� MFC class�� __gc� ���� �걸까? �� �� �� ������� �� ��까?

���� MFC ������ ��� ���������� ���� �������� ���� ���� � ��까 �각��. 길�� �� :)
--NeoCoin



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:50
Processing time 0.0358 sec