日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

针对状态的间接测试

發布時間:2023/12/19 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 针对状态的间接测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義? 基于狀態的測試(也稱狀態驗證),是指在方法執行之后,通過檢查被測系統及其協作者(依賴項)的狀態來檢測該方法是否正確工作。

讓我們來看一個基于狀態測試的簡單例子,它使用LogAnalyzer類,然而,我們不能簡單地調用一個方法就完成測試。代碼清單2.3給出了該類的代碼。

代碼清單2.3? 通過調用IsValidLogFileName來測試屬性的值

  • public?class?LogAnalyzer ?
  • { ?
  • ????private?bool?wasLastFileNameValid; ?
  • ?
  • ????public?bool?WasLastFileNameValid ?
  • ????{ ?
  • ????????get?{?return?wasLastFileNameValid;?} ?
  • ????????set?{?wasLastFileNameValid?=?value;?} ?
  • ????} ?
  • ?
  • ????public?bool?IsValidLogFileName(string?fileName) ?
  • ????{ ?
  • ????????if?(!fileName.ToLower().EndsWith(".slf")) ?
  • ????????{ ?
  • ????????????wasLastFileNameValid?=?false; ?
  • ????????????return?false; ?
  • ????????} ?
  • ?
  • ????????//存儲狀態的結果用于以后驗證 ?
  • ????????wasLastFileNameValid?=?true; ?
  • ????????return?true; ?
  • ????} ?
  • } ?
  • 從代碼中可以看出,LogAnalyzer記住了驗證檢查的最終結果。因為邏輯上取決于先有其他方法被調用,所以我們要測試此功能,不能只是簡單地寫一個測試,用它來取得一個方法的返回值,我們必須使用其他手段來檢測邏輯是否有問題。

    首先,必須確定要測試的邏輯。是在新的屬性wasLastFileNameValid中嗎?不是的,是在IsValidLogFileName方法中,所以我們的測試名稱必須以這個方法開頭。代碼清單2.4給出了一個簡單測試,看其結果是否已記住。

    代碼清單2.4? 通過調用方法并檢查其屬性值來測試一個類

  • [Test] ?
  • public?void?IsValidLogFileName_ValidName_RemembersTrue() ?
  • { ?
  • ????LogAnalyzer?log?=?new?LogAnalyzer(); ?
  • ?
  • ????log.IsValidLogFileName("somefile.slf"); ?
  • ???? ?
  • ????Assert.IsTrue(log.WasLastFileNameValid); ?
  • } ?
  • 請注意,我們是在被測代碼以外的地方做斷言來測試IsValidLogFileName方法功能的。

    代碼清單2.5給出了另一個例子(我們將在第3章中再次用到)。在該例子中,查看一個內置的內存計算器功能。(參考本書的范例代碼Calculator.cs和CalculatorTests.cs。)

    代碼清單2.5? Add()方法和Sum()方法

  • public?class?Calculator ?
  • { ?
  • ????private?int?sum?=?0; ?
  • ????public?void?Add(int?number) ?
  • ????{ ?
  • ????????sum?+=?number; ?
  • ????} ?
  • ????public?int?Sum() ?
  • ????{ ?
  • ????????int?temp?=?sum;?sum?=?0; ?
  • ????????return?temp; ?
  • ????} ?
  • } ?
  • Calculator類的工作原理類似于大家了解并喜歡的袖珍計算器。輸入一個數字,然后按+,輸入另外一個數字,然后再按+,諸如此類。輸入結束時,按=即可得到當前的總和。

    從哪里開始測試Sum()方法呢?應該堅持從最簡單的測試開始,比如測試Sum()默認返回0。代碼清單2.6給出了以上做法。

    代碼清單2.6? 針對Calculator的Sum()方法的最簡單測試

  • [Test] ?
  • public?void?Sum_NoAddCalls_DefaultsToZero() ?
  • { ?
  • ????Calculator?calc?=?new?Calculator(); ?
  • ?
  • ????int?lastSum?=?calc.Sum(); ?
  • ?
  • ????Assert.AreEqual(0,lastSum); ?
  • } ?
  • 我們不能在調用Add()方法之前寫其他測試,所以我們下一個測試必須調用Add()并對Sum()返回的數值作斷言。代碼清單2.7給出了附有新測試方法的測試類。

    代碼清單2.7? 兩個測試,其中第二個調用了Add()方法

  • [SetUp] ?
  • public?void?Setup() ?
  • { ?
  • ????calc?=?new?Calculator(); ?
  • } ?
  • ?
  • [Test] ?
  • public?void?Sum_NoAddCalls_DefaultsToZero() ?
  • { ?
  • ????int?lastSum?=?calc.Sum(); ?
  • ????Assert.AreEqual(0,lastSum); ?
  • } ?
  • ?
  • [Test] ?
  • public?void?Add_CalledOnce_SavesNumberForSum() ?
  • { ?
  • ????calc.Add(1); ?
  • ????int?lastSum?=?calc.Sum(); ?
  • ????Assert.AreEqual(1,lastSum); ?
  • } ?
  • 請注意,這里的測試在[SetUp]相關的方法中初始化Calculator對象。這是個不錯的想法,因為這樣可以節省寫測試的時間,使得代碼更 少,而且確保用同樣的方法來初始化Calculator。同樣,也有更好的測試維護性,如果改變Calculator的構造函數,只需在一個地方改變初始 化代碼,而無需在每個測試中都更改new調用。

    到目前為止,一切都很好。但是如果被測方法依賴于外部資源又會怎樣呢?比如依賴于文件系統、數據庫、Web服務或者任何我們很難控制的其他東西。這正是我們開始新建測試樁對象(stub)、偽對象(fake)和模擬對象(mock)的時候,我們將在接下來幾章中討論到。

    轉載于:https://www.cnblogs.com/shihao/archive/2012/04/19/2456811.html

    總結

    以上是生活随笔為你收集整理的针对状态的间接测试的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本免费一区二区视频 | 国产精品天天操 | 色老头免费视频 | 久久99久久99精品中文字幕 | 国产69视频在线观看 | 欧美在线观看视频一区 | www操操操 | 久久久噜噜噜久久久 | 日韩一区二区三区精品视频 | 黄色福利| 精品综合 | 久久青青草视频 | 天天爽天天干 | 一区二区三区四区五区在线视频 | 黄色片小视频 | 男生操女生动漫 | 久久久精品亚洲 | 成人污在线观看 | 91极品在线 | 国产精品久久久久久久久 | 一级片在线视频 | 亚洲天堂网在线观看视频 | 亚洲精品国产精品国自产网站按摩 | 国产自精品| 鲁一鲁色一色 | 黄色小视频在线看 | 国产91在线播放 | 天天天天干 | 欧美精品电影一区二区 | 久久欲 | 久精品在线观看 | 日本视频中文字幕 | 亚洲第八页 | 福利视频在线 | 中文字幕人妻精品一区 | 男人操女人下面 | 欧美日本 | 人人插人人看 | 亚洲成人av一区二区 | 丰满人妻综合一区二区三区 | av色图片| 自拍偷拍色 | 在线成人av网站 | 波多野结衣久久精品 | 极品少妇xxxx | 91成人免费看片 | 天天综合天天综合 | 操综合| 老牛嫩草二区三区观影体验 | 秘密爱大尺度做爰呻吟 | 欧美视频在线观看一区二区 | 国产精品无码免费在线观看 | 午夜精品国产精品大乳美女 | 中文字幕巨乳 | 黄色专区| 国产av无毛 | 特级淫片裸体免费看 | 亚洲风情第一页 | 中文字幕视频在线观看 | 久久神马影院 | 91香蕉国产在线观看软件 | 美女激情av | 视频在线观看视频 | 亚洲国产欧美在线观看 | 色资源网站 | 久色网站 | 免费在线观看亚洲 | 久草免费福利 | 天天天天操 | 亚洲一区二区三区久久久成人动漫 | 久操视频在线免费观看 | 国产成人无码久久久精品天美传媒 | 日韩少妇一区二区 | 色窝| 国产一区二区精品丝袜 | 91九色在线播放 | 超碰在线免费播放 | 免费的av片 | 国产成人精品无码免费看夜聊软件 | 成年人福利 | 亚洲国产免费 | 国产亲伦免费视频播放 | 熟妇高潮一区二区三区在线播放 | 亚洲第一淫片 | 在线观看视频中文字幕 | 日本一区二区精品视频 | 日本欧美中文字幕 | 91亚洲专区 | xvideos成人免费视频 | 爱欲av| 大尺度网站在线观看 | 五月婷婷激情综合 | 久久久精品小视频 | 黄色网页免费在线观看 | 久久香蕉精品 | 日韩在线不卡av | 一级大毛片| 波多野结衣电车痴汉 | 国产精品无码影院 |