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.0228 sec