<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            如何在Visual C++ 2010中實(shí)踐測試驅動(dòng)開(kāi)發(fā)

            發(fā)布: 2011-2-23 11:36 | 作者: 陳良喬 | 來(lái)源: it168 | 查看: 99次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

              如果我們現在直接運行這個(gè)測試項目,當然是沒(méi)法編譯通過(guò)的。因為我們還沒(méi)有創(chuàng )建Salay類(lèi)。接下來(lái)就是測試驅動(dòng)開(kāi)發(fā)中的“開(kāi)發(fā)”部分了。為了讓剛才創(chuàng )建的測試項目能夠編譯運行并通過(guò)所有的測試,我們需要做的是:

              1) 向SalarySys解決方案中新添加一個(gè)Visual C++的Win 32靜態(tài)庫項目Salary。我們的開(kāi)發(fā)工作就在這個(gè)項目中進(jìn)行。

              2) 在Salay項目中新添加一個(gè)類(lèi)Salary以實(shí)現工資計算的功能。為了讓測試項目中的測試可以通過(guò),我們先將Salay類(lèi)簡(jiǎn)單地實(shí)現如下:

              class Salary

              {

              public:

              Salary(int nBaseYear) {};

              public:

              int GetSalary(int nNow)

              {

              return 1300;

              }

              };

              3) 有了開(kāi)發(fā)項目之后,接下來(lái)的工作就是將開(kāi)發(fā)項目和測試項目聯(lián)系起來(lái),讓測試項目對開(kāi)發(fā)項目進(jìn)行測試。首先,將開(kāi)發(fā)項目目錄“$(SolutionDir)\Salary\”添加為測試項目的附加包含目錄目錄,這樣測試項目可以找到Salary類(lèi)的定義。然后我們還要將開(kāi)發(fā)項目這個(gè)靜態(tài)庫鏈接到測試項目,為了完成這一步,我們需要在項目屬性中將解決方案的輸出目錄“$(OutputPath)”設置為測試項目的附加庫目錄,然后將靜態(tài)庫Salary.lib設置為測試項目的附加依賴(lài)項。

              完成這些開(kāi)發(fā)項目的編寫(xiě)以及測試項目的設置之后,我們的測試項目就可以編譯通過(guò)并運行其中的測試了。

            在Visual C++ 2010中實(shí)踐測試驅動(dòng)開(kāi)發(fā)

              從Visual Studio 2010中測試結果

              到這里,我們就完成了測試驅動(dòng)開(kāi)發(fā)過(guò)程的一次完整的迭代,接下來(lái)的工作,就是編寫(xiě)更多的測試以覆蓋設計中的所有用例,然后運行這些測試使這些測試通過(guò),如果測試暫時(shí)無(wú)法通過(guò),則對開(kāi)發(fā)代碼進(jìn)行重構實(shí)現設計使得所有測試都可以通過(guò)。例如,在上面完成第一次開(kāi)發(fā)迭代的基礎,我們可以編寫(xiě)更多的測試來(lái)覆蓋Salary類(lèi)設計中的所有功能點(diǎn):

              [TestMethod]

              void TestCalculationn()

              {

              std::unique_ptr pClass(new Salary(2003));

              int cases[4][2] =

              {{2003,1000},{2004,1300},

              {2005,1600},{2011,3100}

              };

              for(int i = 0; i < 4; ++i)

              {

              Assert::AreEqual(cases[i][1], pClass->GetSalary( cases[i][0]));

              }

              };

              在這里我們使用一個(gè)數組cases定義了多個(gè)測試用例,然后使用for循環(huán)對這些用例逐個(gè)進(jìn)行測試,F在我們運行測試項目中的這些測試當然是沒(méi)法通過(guò)的,所以這些測試就驅動(dòng)我們去對開(kāi)發(fā)項目中的Salary類(lèi)進(jìn)行重構,以使得這些測試可以通過(guò):

              class Salary

              {

              public:

              Salary(int nBaseYear)

              :m_nBaseYear(nBaseYear)

              {};

              public:

              int GetSalary(int nNow)

              {

              return 300*(nNow - m_nBaseYear) + 1000;

              }

              private:

              int m_nBaseYear;

              };

             

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            32/3<123>

            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>