﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-xyjzsh-随笔分类-gtest研究</title><link>http://www.cppblog.com/xyjzsh/category/20378.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 06 Feb 2013 09:45:09 GMT</lastBuildDate><pubDate>Wed, 06 Feb 2013 09:45:09 GMT</pubDate><ttl>60</ttl><item><title>first demo for gtest</title><link>http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Wed, 06 Feb 2013 09:14:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/197758.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/197758.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/197758.html</trackback:ping><description><![CDATA[<div>1.&nbsp; 首先给出第一个运用gtest的demo
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">stdafx.h</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">gmock/gmock-actions.h</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;testing;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Calculate<br /><img id="Codehighlighter1_96_159_Open_Image" onclick="this.style.display='none'; Codehighlighter1_96_159_Open_Text.style.display='none'; Codehighlighter1_96_159_Closed_Image.style.display='inline'; Codehighlighter1_96_159_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_96_159_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_96_159_Closed_Text.style.display='none'; Codehighlighter1_96_159_Open_Image.style.display='inline'; Codehighlighter1_96_159_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_96_159_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_96_159_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">:<br /><img id="Codehighlighter1_118_119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_119_Open_Text.style.display='none'; Codehighlighter1_118_119_Closed_Image.style.display='inline'; Codehighlighter1_118_119_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_118_119_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_118_119_Closed_Text.style.display='none'; Codehighlighter1_118_119_Open_Image.style.display='inline'; Codehighlighter1_118_119_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;Calculate()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_118_119_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_118_119_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_145_157_Open_Image" onclick="this.style.display='none'; Codehighlighter1_145_157_Open_Text.style.display='none'; Codehighlighter1_145_157_Closed_Image.style.display='inline'; Codehighlighter1_145_157_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_145_157_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_145_157_Closed_Text.style.display='none'; Codehighlighter1_145_157_Open_Image.style.display='inline'; Codehighlighter1_145_157_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;add(</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;a,</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;b)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_145_157_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_145_157_Open_Text"><span style="color: #000000">{</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;a</span><span style="color: #000000">+</span><span style="color: #000000">b;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CalculateMock:</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Calculate<br /><img id="Codehighlighter1_200_281_Open_Image" onclick="this.style.display='none'; Codehighlighter1_200_281_Open_Text.style.display='none'; Codehighlighter1_200_281_Closed_Image.style.display='inline'; Codehighlighter1_200_281_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_200_281_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_200_281_Closed_Text.style.display='none'; Codehighlighter1_200_281_Open_Image.style.display='inline'; Codehighlighter1_200_281_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_200_281_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_200_281_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">:<br /><img id="Codehighlighter1_238_239_Open_Image" onclick="this.style.display='none'; Codehighlighter1_238_239_Open_Text.style.display='none'; Codehighlighter1_238_239_Closed_Image.style.display='inline'; Codehighlighter1_238_239_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_238_239_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_238_239_Closed_Text.style.display='none'; Codehighlighter1_238_239_Open_Image.style.display='inline'; Codehighlighter1_238_239_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;CalculateMock():Calculate()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_238_239_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_238_239_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;MOCK_METHOD2(add,</span><span style="color: #0000ff">long</span><span style="color: #000000">(</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;a,</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;b));<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;testFun(Calculate</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;cal)<br /><img id="Codehighlighter1_314_338_Open_Image" onclick="this.style.display='none'; Codehighlighter1_314_338_Open_Text.style.display='none'; Codehighlighter1_314_338_Closed_Image.style.display='inline'; Codehighlighter1_314_338_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_314_338_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_314_338_Closed_Text.style.display='none'; Codehighlighter1_314_338_Open_Image.style.display='inline'; Codehighlighter1_314_338_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_314_338_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_314_338_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;cal.add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">);<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />TEST(testMock,testAdd)<br /><img id="Codehighlighter1_363_537_Open_Image" onclick="this.style.display='none'; Codehighlighter1_363_537_Open_Text.style.display='none'; Codehighlighter1_363_537_Closed_Image.style.display='inline'; Codehighlighter1_363_537_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_363_537_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_363_537_Closed_Text.style.display='none'; Codehighlighter1_363_537_Open_Image.style.display='inline'; Codehighlighter1_363_537_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_363_537_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_363_537_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;CalculateMock&nbsp;obj;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;len&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ON_CALL(obj,add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">)).WillByDefault(Return(len));&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;EXPECT_CALL(obj,add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">)).Times(</span><span style="color: #000000">1</span><span style="color: #000000">);<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">obj.add(2,3);</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;EXPECT_EQ(</span><span style="color: #000000">10</span><span style="color: #000000">,&nbsp;obj.add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">));<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;_tmain(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;argc,&nbsp;_TCHAR</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;argv[])<br /><img id="Codehighlighter1_577_649_Open_Image" onclick="this.style.display='none'; Codehighlighter1_577_649_Open_Text.style.display='none'; Codehighlighter1_577_649_Closed_Image.style.display='inline'; Codehighlighter1_577_649_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_577_649_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_577_649_Closed_Text.style.display='none'; Codehighlighter1_577_649_Open_Image.style.display='inline'; Codehighlighter1_577_649_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_577_649_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_577_649_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;testing::InitGoogleMock(</span><span style="color: #000000">&amp;</span><span style="color: #000000">argc,&nbsp;argv);&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;RUN_ALL_TESTS();<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span></div><br />做第一个demo需要注意的事项：<br />1. 将用到的gtest,gmock,和你自己运用的project用同样的code generation 的形式一致,将 project property-&gt;C++-&gt;Code Generation: 设置为：Multi-threaded Debug(/MTd)<br />2. 添加 using namespace testing, 否则会出现&#8216;Return&#8217;Identifier not found.这样的错误<br /><br />So excited to make it work after so much confusion, anxiety.<br />Fighting!!</div><img src ="http://www.cppblog.com/xyjzsh/aggbug/197758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2013-02-06 17:14 <a href="http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>