黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級(jí) | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊會(huì)計(jì)師 | 審計(jì)師 | 注冊稅務(wù)師
注冊資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊測繪師 | 注冊計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 復(fù)習(xí)資料 > 軟件評(píng)測師 > 正文

單元測試小技巧

  代碼更加容易被理解  單元測試的好處通常并非是人們最初所期待的,在一個(gè)工程中考慮修改一些你之前從沒有看過的代碼(比方說,一個(gè)特殊的類或者方法).你將如何動(dòng)手處理這些代碼?你可能需要在項(xiàng)目中去瀏覽這些特定的類或者方法使用的代碼,理所當(dāng)然,單元測試就是這樣例子的一個(gè)很好的場所。同時(shí),當(dāng)正確寫入的時(shí)候,單元測試可以為工程提供一個(gè)API文件的容易讀取的設(shè)置,使得文檔的處理和代碼的理解對(duì)于整個(gè)團(tuán)隊(duì)中的新老開發(fā)者一樣的簡單,便捷。然而,這些只能在測試是易讀的和容易理解的情況下才能被確認(rèn),這個(gè)規(guī)則很多的單元測試開發(fā)者并不會(huì)遵循。我將詳述這個(gè)信任,然后在這篇文章的易讀測試的部分給你展現(xiàn)如何在去寫易讀的單元測試。

  測試正確的事情

  新來者在Test Driven Development (TDD)中一個(gè)最通常的錯(cuò)誤就是他們通常會(huì)搞混"Fail by testing something illogical."中的"Fail first"要求。例如,你可以用下面的規(guī)格開始這個(gè)方法:       ' returns the sum of the two numbers
  Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer
   你可以向如下的方式寫一個(gè)失敗測試:     <TestMethod()> _
  Public Sub Sum_AddsOneAndTwo()
      Dim result As Integer = Sum(1, 2)
      Assert.AreEqual(4, result, "bad sum");
  End Sub
  初看上去這個(gè)處理像是一個(gè)寫失敗測試的好的方法,它完全錯(cuò)失了你寫錯(cuò)誤測試的初始點(diǎn)。

  一個(gè)失敗測試驗(yàn)證了在代碼中存在一些錯(cuò)誤,當(dāng)你的測試完成后這個(gè)測試應(yīng)該是通過的,現(xiàn)在的例子中,無論如何,測試都將會(huì)失敗,即使是代碼完成,因?yàn)闇y試邏輯上不是正確的。如果希望測試通過測需要測試自身進(jìn)行修改――而不是程序的代碼的改變(當(dāng)程序代碼改變的時(shí)候,是test-first規(guī)劃的意圖)簡短來說,這個(gè)測試不會(huì)反映出程序代碼完成后的最終的結(jié)果,因此這個(gè)不是一個(gè)好的測試。 單元測試小技巧[2]http://www.csai.cn  作者:Roy Osherove  來源:MSND  2007年1月24日
  TDD中一個(gè)好的測試要求你去修改代碼,從而使它能夠按照想要的方式工作,這一點(diǎn)要?jiǎng)儆趶?qiáng)迫你去反映現(xiàn)在的真實(shí)情況或者一個(gè)非邏輯要求的渴望的結(jié)果。例如,當(dāng)1+1返回0時(shí)就意味著測試失敗。這個(gè)簡單的例子和這種情況是相似的,在練習(xí)中,如果現(xiàn)在的需求是在工作的,測試應(yīng)該可以反映你所期待的結(jié)果,然后你可以調(diào)整現(xiàn)在代碼的情況去通過這個(gè)測試。

  作為一個(gè)規(guī)則,一個(gè)已經(jīng)調(diào)通的測試不應(yīng)該被移除掉,因?yàn)檫@個(gè)測試在維護(hù)工作中可以用于恢復(fù)測試。他們在你改變代碼時(shí)用來確定你沒有損害到現(xiàn)在已經(jīng)工作的函數(shù)。這就是為什么你不應(yīng)該修改那些已經(jīng)通過的測試,除非是一些很小的修改,例如增加它的可讀性(換句話說,分解測試)

  當(dāng)一個(gè)測試非正常失敗  有時(shí)你可能遇到失敗的測試,而這時(shí)你對(duì)代碼的改變是完全合理的。這通常是因?yàn)槟阌龅搅藳_突的需求。一般來說,可能是一個(gè)新的需求(一個(gè)改變的特性)與一個(gè)舊的可能已經(jīng)不再有效的需求發(fā)生了沖突。這有兩種可能:

  1. 在舊的需求或者無效或者在別處測試的情況下刪除被驗(yàn)證本質(zhì)上不再有效的失敗的測試
 
  2. 改變舊的測試使你可以測試新的要求(本質(zhì)上使用新的測試),然后在新的設(shè)置下(測試的邏輯狀態(tài)相同,但是初始功能函數(shù)可能有所不同)測試舊的需求。

  而有時(shí)候一個(gè)測試在使用不完整的技術(shù)去完成任務(wù)的時(shí)候也是有效的,例如,你有一個(gè)成員類帶有一個(gè)FOO方法,它表現(xiàn)為某幾種行為,它已經(jīng)經(jīng)由Test在X年前測試完成,然后現(xiàn)在一些其他的需求加了進(jìn)來,方法的邏輯增強(qiáng)了,從而可以去處理一些類似于在獲取數(shù)據(jù)時(shí)丟失一些參數(shù)的異常處理。但這時(shí),突然Test X失敗了,雖然在測試這個(gè)函數(shù)的時(shí)候只是使用了同樣的類。這個(gè)測試的失敗是因?yàn)樵谡{(diào)用方法之前丟失了一些初始處理步驟。

  這并不意味著你需要移除Test X,你將丟失對(duì)于一些重要功能的測試,這時(shí)你應(yīng)該去關(guān)心那些初始化時(shí)的問題,而不是改變類的創(chuàng)建以用來適應(yīng)你新的意圖。

  當(dāng)然如果你那里有200個(gè)測試都是因?yàn)榕f的結(jié)構(gòu)導(dǎo)致的失敗,你就應(yīng)該找到這個(gè)問題來維護(hù)你的測試。這就是為什么你應(yīng)該總是移除你測試中的副本尤其是在生產(chǎn)代碼中。

  測試覆蓋和測試Angles  你如何知道是否你的新代碼是一個(gè)好的覆蓋?當(dāng)試圖移動(dòng)一個(gè)鏈接或者一個(gè)約束檢查后,如果所有的測試依然通過,那么你就沒有足夠的代碼復(fù)制然后你可能需要添加其他的測試單元。

  確認(rèn)你添加正確測試的最好方法就是測試一些最平常的行和檢查直到用非常的手段使它出錯(cuò)。這個(gè)也許很難,但是如果你不能考慮出一個(gè)讓代碼出錯(cuò)的方法,你就可能沒有好的理由在最初的地方寫下這行代碼。

  

更多軟考資料請?jiān)L問:考試吧軟件水平考試欄目

希望與更多網(wǎng)友交流,請進(jìn)入考試吧軟件水平考試論壇

 

上一頁  1 2 3 4 5 6 7 下一頁
文章責(zé)編:yanruijie  
看了本文的網(wǎng)友還看了
文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。
主站蜘蛛池模板: 精品一区二区视频 | 国产欧美一级片 | 一级人做人a爰免费视频 | 日韩一区二区三区免费视频 | 日本人欧美xx | 视频精品一区 | 一区二区三区日韩精品 | 中文字幕日韩一区二区三区不 | 性欧美videos另类hd | 怡春院日本一区二区久久 | 精品一区二区三区在线观看视频 | 免费a大片| 日韩美女视频在线 | 一本久道久久综合 | 夜色私人影院永久地址入口 | 日韩午夜片| 欧美日韩视频二区三区 | 欧美一区二区手机在线观看视频 | 看全色黄大色黄大片女图片 | 5278欧美一区 | a国产在线 | 日韩在线视频第一页 | 182tv午夜精品视频在线播放 | a视频在线免费观看 | 亚洲高清国产品国语在线观看 | 九九久久亚洲综合久久久 | 多人伦交性欧美在线观看 | 黄色一级免费片 | 午夜免费r级伦理片 | 在线视频国产区11p 在线视频观看一区 | avtt一区 | 成人免费xxxxx在线视频 | 在线观看国产一区亚洲bd | 亚洲 欧美 中文 日韩专区 | 一二三四视频社区在线网 | www福利| 欧美v在线观看 | 美女黄色影院 | 青草视频网站 | 成人网在线视频 | 欧美午夜春性猛交xxxx |