<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://api.springnote.com">
  <identifier type="integer">639067</identifier>
  <title>CppUnit</title>
  <relation_is_part_of type="integer">301799</relation_is_part_of>
  <date_modified type="datetime">2009-10-09T00:20:15Z</date_modified>
  <uri>http://ppiazi.springnote.com/pages/639067</uri>
  <date_created type="datetime">2007-12-09T13:33:21Z</date_created>
  <source>&lt;div id="toc" style="border: 1px solid tan; padding: 2px 10px 0px; background-color: rgb(255, 255, 250);"&gt;
&lt;p&gt;&lt;strong&gt;&#47785;&#52264;&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#toc_0" class="external" title="toc_0"&gt;CppUnit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#toc_1" class="external" title="toc_1"&gt;CppUnit &#45796;&#50868;&#47196;&#46300;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#toc_2" class="external" title="toc_2"&gt;VC++ &#49444;&#51221; &#54616;&#44592;&lt;/a&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#toc_3" class="external" title="toc_3"&gt;CppUnit &#46972;&#51060;&#48652;&#47084;&#47532; &#48716;&#46300;&#54616;&#44592;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#toc_4" class="external" title="toc_4"&gt;VC++ &#46356;&#47113;&#53664;&#47532; &#49444;&#51221;&#54616;&#44592;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#toc_5" class="external" title="toc_5"&gt;&#44036;&#45800; &#49324;&#50857;&#44592;&lt;/a&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#toc_6" class="external" title="toc_6"&gt;&#49884;&#51089;&#54616;&#44592;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#toc_7" class="external" title="toc_7"&gt;&#53580;&#49828;&#53944; &#49688;&#54665; &#53076;&#46300; &#47564;&#46308;&#44592;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#toc_8" class="external" title="toc_8"&gt;&#53580;&#49828;&#53944; &#53076;&#46300; &#52628;&#44032;&#54616;&#44592;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;CppUnit &lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_0" class="anchor" title="toc_0" id="toc_0" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CppUnit&#45716; C++&#50857; &#53580;&#49828;&#54021; &#54532;&#47112;&#51076;&#50892;&#53356;&#51060;&#45796;. Michael Feathers&#50472;&#44032; Java&#51032; &lt;a href="http://www.junit.org/" title="JUnit" class="external"&gt;JUnit&lt;/a&gt;&#51012; C++&#47196; &#44396;&#54788;&#54620; &#44163;&#51060;&#45796;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&#45796;&#51020;&#44284; &#44057;&#51008; &#53945;&#51669;&#51012; &#44054;&#45716;&#45796;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;XML output with hooks for additional data (XSL format avaliable in release 1.10.2 needs some &lt;a href="http://cppunit.sourceforge.net/cppunit-wiki/FiXing"&gt;FiXing&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Compiler-like text output to integrate with an IDE&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Helper macros for easier test suite declaration&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hierarchical test fixture support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Test registry to reduce recompilation need&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Test plug-in for faster compile/test cycle (self testable dynamic library)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Protector to encapsulate test execution (allow capture of exception not derived from std::exception)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://cppunit.sourceforge.net/cppunit-wiki/MfcTestRunner"&gt;MfcTestRunner&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://cppunit.sourceforge.net/cppunit-wiki/QtTestRunner"&gt;QtTestRunner&lt;/a&gt;, a Qt based graphic test runner&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://cppunit.sourceforge.net/cppunit-wiki/QxTestRunner"&gt;QxTestRunner&lt;/a&gt;, a Qt4 based graphic test runner&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://cppunit.sourceforge.net/cppunit-wiki/CursesTestRunner"&gt;CursesTestRunner&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://cppunit.sourceforge.net/cppunit-wiki/WxWidgetsTestRunner"&gt;WxWidgetsTestRunner&lt;/a&gt; (formerly: &lt;a href="http://cppunit.sourceforge.net/cppunit-wiki/WxWindowsTestRunner"&gt;WxWindowsTestRunner&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CppUnit &#45796;&#50868;&#47196;&#46300;&lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_1" class="anchor" title="toc_1" id="toc_1" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="http://sourceforge.net/projects/cppunit" title="http://sourceforge.net/projects/cppunit" class="external"&gt;http://sourceforge.net/projects/cppunit&lt;/a&gt; &#50640;&#49436; &#52572;&#44540; &#54028;&#51068;&#51012; &#45796;&#50868;&#47196;&#46300;&#54620;&#45796;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&#51201;&#45817;&#54620; &#44275;&#50640; &#50517;&#52629;&#51012; &#54396;&#45796;. &#50517;&#52629;&#51012; &#54396;&#44275;&#51032; &#46356;&#47113;&#53664;&#47532;&#47484; &#54200;&#51032;&#49345; $CPPUNIT &#51060;&#46972;&#44256; &#52845;&#54620;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;VC++ &#49444;&#51221; &#54616;&#44592;&lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_2" class="anchor" title="toc_2" id="toc_2" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h2&gt;
&lt;h3&gt;CppUnit &#46972;&#51060;&#48652;&#47084;&#47532; &#48716;&#46300;&#54616;&#44592; &lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_3" class="anchor" title="toc_3" id="toc_3" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;$CPPUNIT/src/CppUnitLibraries.dsw&#47484; VC++&#51012; &#49324;&#50857;&#54616;&#50668; &#50672;&#45796;.&lt;/li&gt;
&lt;li&gt;Build&#47700;&#45684;&#50640;&#49436; "Batch Build..."&#47484; &#49440;&#53469;&#54620;&#45796;.&lt;/li&gt;
&lt;li&gt;&#46972;&#51060;&#48652;&#47084;&#47532; &#48716;&#46300;&#44032; &#45149;&#45208;&#47732; $CPPUNIT/lib &#46356;&#47113;&#53664;&#47532;&#50640; &#51200;&#51109;&#46112; &#44163;&#51060;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;VC++ &#46356;&#47113;&#53664;&#47532; &#49444;&#51221;&#54616;&#44592;&lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_4" class="anchor" title="toc_4" id="toc_4" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Tools/Options &#47700;&#45684;&#47484; &#49444;&#51221;&#54620;&#45796;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Directories &#53485;&#51012; &#49440;&#53469;&#54616;&#50668; &#45796;&#51020;&#44284; &#44057;&#51060; &#49444;&#51221;&#54620;&#45796;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Library Files &#50640; $CPPUNIT/lib &#47484; &#52628;&#44032;&#54620;&#45796;.&lt;/li&gt;
&lt;li&gt;Header Files &#50640; $CPPUNIT/include &#47484; &#52628;&#44032;&#54620;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&#44036;&#45800; &#49324;&#50857;&#44592;&lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_5" class="anchor" title="toc_5" id="toc_5" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h2&gt;
&lt;h3&gt;&#49884;&#51089;&#54616;&#44592;&lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_6" class="anchor" title="toc_6" id="toc_6" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&#49352;&#47196;&#50868; &#54532;&#47196;&#51229;&#53944;&#47484; &#47564;&#46304;&#45796;.(&#53080;&#49556; &#50612;&#54540;&#47532;&#52992;&#51060;&#49496;&#51004;&#47196; &#54620;&#45796;.)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Project setting&#50640;&#49436; &#45796;&#51020;&#51012; &#49688;&#51221;&#54620;&#45796;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C/C++ &#53485;&#50640;&#49436; Code Generation&#51012; &#49440;&#53469;&#54616;&#50668; Release&#51008; Multithreaded DLL&#51012; Debug&#45716; Debug Multithreaded DLL&#51012; &#49440;&#53469;&#54620;&#45796;.&lt;/li&gt;
&lt;li&gt;C/C++ &#53485;&#50640;&#49436; C++ Language&#51012; &#49440;&#53469;&#54616;&#50668; Enable Run-Time Type Information(RTTI)&#51012; &#52404;&#53356;&#54620;&#45796;.&lt;/li&gt;
&lt;li&gt;Link &#53485;&#50640;&#49436; Object/Library &#47784;&#46280; &#54596;&#46300;&#50640; Release&#45716; cppunit.lib&#47484;, Debug&#45716; cppunitd.lib&#47484; &#52628;&#44032;&#54644; &#51456;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&#53580;&#49828;&#53944; &#49688;&#54665; &#53076;&#46300; &#47564;&#46308;&#44592;&lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_7" class="anchor" title="toc_7" id="toc_7" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&#51060;&#44275;&#50640;&#49436;&#45716; post-build testing&#51012; &#50948;&#54644; CompilerOutputter&#47484; &#49324;&#50857;&#54616;&#45716;TextTestRunner&#47484; &#49440;&#53469;&#54624; &#44163;&#51060;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li&gt;#include "stdafx.h"&lt;br /&gt;
#include &amp;lt;cppunit/CompilerOutputter.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cppunit/extensions/TestFactoryRegistry.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cppunit/ui/text/TestRunner.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char* argv[])&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; // Get the top level suite from the registry&lt;br /&gt;
&amp;nbsp; CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; // Adds the test to the list of test to run&lt;br /&gt;
&amp;nbsp; CppUnit::TextUi::TestRunner runner;&lt;br /&gt;
&amp;nbsp; runner.addTest( suite );&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; // Change the default outputter to a compiler error format outputter&lt;br /&gt;
&amp;nbsp; runner.setOutputter( new CppUnit::CompilerOutputter( &amp;amp;runner.result(),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cerr ) );&lt;br /&gt;
&amp;nbsp; // Run the tests.&lt;br /&gt;
&amp;nbsp; bool wasSucessful = runner.run();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; // Return error code 1 if the one of test failed.&lt;br /&gt;
&amp;nbsp; return wasSucessful ? 0 : 1;&lt;br /&gt;
}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&#53580;&#49828;&#53944; &#53076;&#46300; &#52628;&#44032;&#54616;&#44592;&lt;sup class="tocAnchorContainer"&gt;&lt;a href="#toc_8" class="anchor" title="toc_8" id="toc_8" &gt;#&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&#45796;&#51020;&#51032; &#54756;&#45908;&#54028;&#51068;&#44284; &#49548;&#49828;&#54028;&#51068;&#51012; &#52628;&#44032;&#54620;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;MoneyTest.h&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;#if !defined(AFX_MONEYTEST_H__833FAB42_8C68_44A7_8B27_A70007883742__INCLUDED_)&lt;br /&gt;
#define AFX_MONEYTEST_H__833FAB42_8C68_44A7_8B27_A70007883742__INCLUDED_&lt;br /&gt;
&lt;br /&gt;
#if _MSC_VER &amp;gt; 1000&lt;br /&gt;
#pragma once&lt;br /&gt;
#endif // _MSC_VER &amp;gt; 1000&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;cppunit/extensions/HelperMacros.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class MoneyTest : public CppUnit::TestFixture&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CPPUNIT_TEST_SUITE(MoneyTest);&amp;nbsp;&amp;nbsp;&amp;nbsp; ///&amp;lt; declares that our Fiture's test suite&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CPPUNIT_TEST(testConstructor);&amp;nbsp;&amp;nbsp;&amp;nbsp; ///&amp;lt; adds a test to our test suite. The test is implemented by a method named testConstructor()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CPPUNIT_TEST_SUITE_END();&lt;br /&gt;
public:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MoneyTest();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; virtual ~MoneyTest();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void setUp();&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ///&amp;lt; setUp some fixtures&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void tearDown();&amp;nbsp;&amp;nbsp;&amp;nbsp; ///&amp;lt; tearDown some fixtures&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void testConstructor();&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // !defined(AFX_MONEYTEST_H__833FAB42_8C68_44A7_8B27_A70007883742__INCLUDED_)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MoneyTest.cpp&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;#include "stdafx.h"&lt;br /&gt;
#include "MoneyTest.h"&lt;br /&gt;
&lt;br /&gt;
/// Registers the fixture into the 'registry'&lt;br /&gt;
CPPUNIT_TEST_SUITE_REGISTRATION(MoneyTest);&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////&lt;br /&gt;
// Construction/Destruction&lt;br /&gt;
//////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
MoneyTest::MoneyTest()&lt;br /&gt;
{ }&lt;br /&gt;
&lt;br /&gt;
MoneyTest::~MoneyTest()&lt;br /&gt;
{ }&lt;br /&gt;
&lt;br /&gt;
void MoneyTest::setUp()&lt;br /&gt;
{ }&lt;br /&gt;
&lt;br /&gt;
void MoneyTest::tearDown()&lt;br /&gt;
{ }&lt;br /&gt;
&lt;br /&gt;
void MoneyTest::testConstructor()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CPPUNIT_FAIL("not implemented");&lt;br /&gt;
}&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&#52636;&#47141;&#44208;&#44284;&#45716; &#45796;&#51020;&#44284; &#44057;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: center;"&gt;&lt;img title="result1.JPG" class="attachment" src="/pages/639067/attachments/284294" alt="result1.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&#47112;&#54140;&#47088;&#49828;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CppUnit Cookbook : &lt;a href="http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html" class="external" title="http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html"&gt;http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</source>
  <rights nil="true"></rights>
  <creator>ppiazi</creator>
  <contributor_modified>ppiazi</contributor_modified>
  <version type="integer">60</version>
  <tags></tags>
</page>
