<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      簡單嘗試VS2012 Rc的C++原生單元測試

       

          裝上Vs2012 Rc,其中一個原因,是C++的原生單元測試,與以前.net下完全一致。這是很開心的事情,下面簡單的測試一下。

          假設(shè)我們要使用Stl完成一項相對較通用的工作:為某個struct的vector,創(chuàng)建一個迭代器,用來返回struct的某個成員。這樣做的意義是什么呢?假設(shè)我們要對該結(jié)構(gòu)的vector,基于其某個字段排序,只需要為sort算法提供這種類型的迭代器就行了。這樣算法就真正無需考慮容器“是什么”的問題。

          當(dāng)然,可以寫一個比較函數(shù)來使用sort,但若是自己寫的更復(fù)雜的算法呢?我們直接將struct數(shù)組,偽造成某個字段的數(shù)組,這樣豈非是最省事的方法?

       

          那么我們先創(chuàng)建一個本機單元測試項目。

          先寫測試代碼,意思很簡單,需要為某個vector創(chuàng)建迭代器器,檢查其返回值是否正確,檢查是否到了vector的最后位置:  

      TEST_METHOD(Iterator_Test)
      {
          vector<Quote> q;
          Quote quote={1.00,2.00};
          q.push_back(quote);
          quote.open=2.00;
          q.push_back(quote);
          myit i(q.begin());
          Assert::AreEqual((double)1.00, (double)(*i),0.0001, L"message", LINE_INFO());
          ++i;
         Assert::AreEqual((double) 2.00, (double)(*i),0.0001, L"message", LINE_INFO());
         ++i;
        Assert::AreEqual<vector<Quote>::iterator>(q.end(),i,L"message", LINE_INFO());
      
      		

       

      那么實現(xiàn)這項功能的方法也容易,代碼如下:

       

      struct Quote
      {
              float open,close;
      };
      
      class myit : public std::vector<Quote>::iterator {
      public:
          inline myit(std::vector<Quote>::iterator const &c):std::vector<Quote>::iterator(c) {}
          float operator*() {
              const Quote &p = std::vector<Quote>::iterator::operator*();
              return p.open;
          }
          typedef float value_type;
          typedef float *pointer;
          typedef float &reference;
      };

       

      注意,這里沒有做任何抽象,僅僅是簡單的實現(xiàn)一個針對vector<Quote>的迭代器,希望提供其作為算法的參數(shù)。若我們有興趣的話,可以簡單的抽象一下,針對任何容器,快速提供一個迭代器,返回其某個成員。類似Iterator<vector<Quote>,float,匿名函數(shù)返回某個成員> iter;當(dāng)然,在抽象的過程中,現(xiàn)有的單元測試仍是有效的。這也是敏捷開發(fā)中很常見的次序:先寫測試表達(dá)意圖,再以最簡易的方法通過測試,必要的時候才考慮抽象。

      我們打開測試試圖:列出已有的測試,選擇希望運行的,執(zhí)行。單元測試在Ide內(nèi)很好的集成工作,同時與Tfs德生成服務(wù)也能正常協(xié)同,類似Google Test之類的,從此可以好生休息了。

      posted @ 2012-06-17 17:46  玄歌  閱讀(4379)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 国产一区国产二区在线视频| 国产乱子伦农村xxxx| 欧美激情一区二区三区成人 | 国产三级精品三级在线看| 无套内谢少妇一二三四| 国内熟女中文字幕第一页| 永新县| 日韩精品一区二区蜜臀av| 国产精品天干天干综合网| 国产高清一区二区不卡| 2021国产精品视频网站| 国产精品黄色大片在线看| 国产成人精品无码免费看| 亚洲天堂av日韩精品| 久久夜色精品亚洲国产av| caoporn免费视频公开| 日韩乱码人妻无码中文字幕视频| 国产99在线 | 免费| 国产精品综合av一区二区| 无码一区中文字幕| 久久人人97超碰国产精品| 无码少妇一区二区| 亚洲精品一区二区三区不| 日韩精品国产中文字幕| 国产日韩久久免费影院| 激情综合网激情国产av| 日99久9在线 | 免费| 欧美老熟妇乱子伦牲交视频| 免费萌白酱国产一区二区三区| 人妻少妇精品视频三区二区| av中文字幕在线二区| 亚洲午夜理论无码电影| 精品国产乱码久久久久app下载| 四虎库影成人在线播放| 国产精品小仙女自拍视频| 免费av深夜在线观看| 国产精品av中文字幕| 国产在线观看91精品亚瑟| 久久久精品国产精品久久| 国产三级精品片| 成人免费无遮挡无码黄漫视频|