<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>竹枝 &#187; TDD</title>
	<atom:link href="http://blog.anyshpm.com/tag/tdd/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.anyshpm.com</link>
	<description>S &#38; H / M</description>
	<lastBuildDate>Sat, 24 Jul 2010 11:34:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<atom:link rel='hub' href='http://blog.anyshpm.com/?pushpress=hub'/>
		<item>
		<title>TDD入门 &#8211; 参照CppUnit Cookbook用TDD测试加法</title>
		<link>http://blog.anyshpm.com/2010/02/08/tdd-getting-start-cppunit-cookbook.html</link>
		<comments>http://blog.anyshpm.com/2010/02/08/tdd-getting-start-cppunit-cookbook.html#comments</comments>
		<pubDate>Mon, 08 Feb 2010 05:30:29 +0000</pubDate>
		<dc:creator>anyshpm</dc:creator>
				<category><![CDATA[旅程]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cppunit]]></category>
		<category><![CDATA[cppunit cookbook]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[加法]]></category>

		<guid isPermaLink="false">http://blog.anyshpm.com/?p=706</guid>
		<description><![CDATA[基于TestCase的测试类 ?View Code CPP1 2 3 4 5 6 7 8 class AddTest : public CppUnit::TestCase &#123; public: AddTest&#40;std::string name&#41; : CppUnit::TestCase&#40;name&#41; &#123;&#125; void runTest&#40;&#41; &#123; CPPUNIT_ASSERT&#40;add&#40;10, 1&#41;== 11&#41;; CPPUNIT_ASSERT&#40;add&#40;1, 1&#41;== 2&#41;; &#125; &#125;; 加法： ?View Code CPP1 2 3 int add&#40;int a,int b&#41; &#123; return a+b; &#125; 基于TestFixture的测试类 ?View Code CPP1 2 3 4 [...]]]></description>
			<content:encoded><![CDATA[<div>基于TestCase的测试类</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code11'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70611"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p706code11"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">class</span> AddTest <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestCase</span> <span style="color: #008000;">&#123;</span>
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
    AddTest<span style="color: #008000;">&#40;</span>std<span style="color: #008080;">::</span><span style="color: #007788;">string</span> name<span style="color: #008000;">&#41;</span> <span style="color: #008080;">:</span> CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestCase</span><span style="color: #008000;">&#40;</span>name<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">void</span> runTest<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        CPPUNIT_ASSERT<span style="color: #008000;">&#40;</span>add<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span>, <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #000080;">==</span> <span style="color: #0000dd;">11</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        CPPUNIT_ASSERT<span style="color: #008000;">&#40;</span>add<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p></p>
<div>加法：</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code12'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70612"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p706code12"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> add<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a,<span style="color: #0000ff;">int</span> b<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">return</span> a<span style="color: #000040;">+</span>b<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p></p>
<div>基于TestFixture的测试类</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code13'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70613"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code" id="p706code13"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">class</span> AddTest <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestFixture</span> <span style="color: #008000;">&#123;</span>
<span style="color: #0000ff;">private</span><span style="color: #008080;">:</span>
    <span style="color: #0000ff;">int</span> a11,amax
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
    <span style="color: #0000ff;">void</span> setUp<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        a11<span style="color: #000080;">=</span>add<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        amax<span style="color: #000080;">=</span>add<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">40000</span>,<span style="color: #0000dd;">40000</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">void</span> tearDown<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">void</span> testAdd<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        CPPUNIT_ASSERT<span style="color: #008000;">&#40;</span>a11<span style="color: #000080;">==</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        CPPUNIT_ASSERT<span style="color: #008000;">&#40;</span>amax<span style="color: #000080;">==</span><span style="color: #0000dd;">40000</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p></p>
<div>在测试类中添加TestSuite成员</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code14'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70614"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p706code14"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">static</span> CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">Test</span> <span style="color: #000040;">*</span>suite<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestSuite</span> <span style="color: #000040;">*</span>suiteOfTests <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestSuite</span><span style="color: #008000;">&#40;</span> <span style="color: #FF0000;">&quot;AddTest&quot;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    suiteOfTests<span style="color: #000040;">-</span><span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span>addTest<span style="color: #008000;">&#40;</span> <span style="color: #0000dd;">new</span> CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestCaller</span><span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span>AddTest<span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;testAdd&quot;</span>,<span style="color: #000040;">&amp;</span>AddTest<span style="color: #008080;">::</span><span style="color: #007788;">testAdd</span> <span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> suiteOfTests<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p></p>
<div>使用TestRunner运行测试</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code15'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70615"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p706code15"><pre class="cpp" style="font-family:monospace;">CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TextUi</span><span style="color: #008080;">::</span><span style="color: #007788;">TestRunner</span> runner<span style="color: #008080;">;</span>
runner.<span style="color: #007788;">addTest</span><span style="color: #008000;">&#40;</span> AddTest<span style="color: #008080;">::</span><span style="color: #007788;">suite</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
runner.<span style="color: #007788;">run</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p></p>
<div>使用宏来定义测试类中的TestSuite</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code16'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70616"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p706code16"><pre class="cpp" style="font-family:monospace;">CPPUNIT_TEST_SUITE<span style="color: #008000;">&#40;</span>AddTest<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
CPPUNIT_TEST<span style="color: #008000;">&#40;</span>testAdd<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
CPPUNIT_TEST_SUITE_END<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p></p>
<div>异常测试宏</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code17'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70617"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p706code17"><pre class="cpp" style="font-family:monospace;">CPPUNIT_TEST_EXCEPTION</pre></td></tr></table></div>

<p></p>
<div>TestFactoryRegistry注册</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code18'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70618"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p706code18"><pre class="cpp" style="font-family:monospace;">CPPUNIT_TEST_SUITE_REGISTRATION<span style="color: #008000;">&#40;</span>AddTest<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p></p>
<div>TestFactoryRegistry使用</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code19'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70619"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p706code19"><pre class="cpp" style="font-family:monospace;">CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestFactoryRegistry</span> <span style="color: #000040;">&amp;</span>registry<span style="color: #000080;">=</span>CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestFactoryRegistry</span><span style="color: #008080;">::</span><span style="color: #007788;">getRegistry</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
runner.<span style="color: #007788;">addTest</span><span style="color: #008000;">&#40;</span>registry.<span style="color: #007788;">makeTest</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p></p>
<div>Post-build check</div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p706code20'); return false;">View Code</a> CPP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p70620"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p706code20"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span> <span style="color: #0000ff;">int</span> argc, <span style="color: #0000ff;">char</span> <span style="color: #000040;">**</span>argv<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TextUi</span><span style="color: #008080;">::</span><span style="color: #007788;">TestRunner</span> runner<span style="color: #008080;">;</span>
    CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestFactoryRegistry</span> <span style="color: #000040;">&amp;</span>registry <span style="color: #000080;">=</span> CppUnit<span style="color: #008080;">::</span><span style="color: #007788;">TestFactoryRegistry</span><span style="color: #008080;">::</span><span style="color: #007788;">getRegistry</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    runner.<span style="color: #007788;">addTest</span><span style="color: #008000;">&#40;</span> registry.<span style="color: #007788;">makeTest</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">bool</span> wasSuccessful <span style="color: #000080;">=</span> runner.<span style="color: #007788;">run</span><span style="color: #008000;">&#40;</span> <span style="color: #FF0000;">&quot;&quot;</span>, <span style="color: #0000ff;">false</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #000040;">!</span>wasSuccessful<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<h3  class="related_post_title">您可能也关注于:</h3><ul class="related_post"><li><a href="http://blog.anyshpm.com/2008/08/01/%e5%81%9a%e8%87%aa%e5%b7%b1%e7%9a%84%e7%a7%81%e4%ba%ba%e5%8c%bb%e7%94%9f.html" title="做自己的私人医生">做自己的私人医生</a> (0)</li><li><a href="http://blog.anyshpm.com/2007/05/18/hello-world-81.html" title="2007年5月17日:友情">2007年5月17日:友情</a> (2)</li><li><a href="http://blog.anyshpm.com/2010/06/19/lu-decomposition.html" title="LU分解">LU分解</a> (0)</li><li><a href="http://blog.anyshpm.com/2009/10/17/windows-7-starter.html" title="windows 7 starter">windows 7 starter</a> (3)</li><li><a href="http://blog.anyshpm.com/2007/05/05/hello-world-94.html" title="国外经典网站">国外经典网站</a> (0)</li><li><a href="http://blog.anyshpm.com/2007/05/07/hello-world-89.html" title="还有点信心">还有点信心</a> (0)</li><li><a href="http://blog.anyshpm.com/2007/07/07/hello-world-42.html" title="放假了">放假了</a> (1)</li><li><a href="http://blog.anyshpm.com/2007/05/19/hello-world-79.html" title="2007年5月18日:过的意义">2007年5月18日:过的意义</a> (1)</li><li><a href="http://blog.anyshpm.com/2009/04/02/%e5%88%9a%e6%8e%a5%e4%b8%80%e7%94%b5%e8%af%9d.html" title="刚接一电话">刚接一电话</a> (2)</li><li><a href="http://blog.anyshpm.com/2007/06/08/hello-world-54.html" title="2007年6月8日:一杯茶">2007年6月8日:一杯茶</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.anyshpm.com/2010/02/08/tdd-getting-start-cppunit-cookbook.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
