您的位置:首頁 > 業(yè)內(nèi)資訊 > 測試代碼時(shí)你可能會犯的11個(gè)錯(cuò)誤

測試代碼時(shí)你可能會犯的11個(gè)錯(cuò)誤

來源:碼農(nóng)網(wǎng) | 時(shí)間:2016-08-07 17:05:15 | 閱讀:187 |  標(biāo)簽: 代碼 程序員 編程   | 分享到:

我遇到的大多數(shù)開發(fā)人員都不怎么熱衷于測試。有些會去做測試,但大多數(shù)都不測試,不愿意測試,或者勉而為之。我喜歡測試,并且比起編寫新的代碼,愉快地花更多的時(shí)間在測試中。我認(rèn)為,正是因?yàn)閷W⒂跍y試,我才可以花更少的時(shí)間來編寫新的代碼或修復(fù)bug,并且非常有成效。

測試代碼時(shí)你可能會犯的11個(gè)錯(cuò)誤

如果你不確定要不要編寫測試或者并不常寫測試,那么,下面這些內(nèi)容將指導(dǎo)你往一個(gè)更好的方向發(fā)展。

1、沒有測試

我們很容易毫無原因地掉入這個(gè)陷阱。從現(xiàn)在開始,制定計(jì)劃添加測試到你現(xiàn)在正在處理的代碼中,并添加測試到將來的項(xiàng)目中。

2、沒有從項(xiàng)目一開始就啟動測試

我們很難再回過頭去添加測試,并且可能需要改變架構(gòu)才能添加測試,這樣做最終將需要你花更長的時(shí)間才能產(chǎn)出可信任的代碼。從一開始就在項(xiàng)目的生命周期添加測試可以節(jié)省時(shí)間和精力。

3、編寫失敗的測試

TDD方法的普及將紅—綠—重構(gòu)的理念帶到軟件測試世界。這個(gè)理念常常被誤認(rèn)為應(yīng)該“通過編寫一個(gè)失敗的測試開始”。其實(shí)并非如此。在寫代碼之前創(chuàng)建測試的目的是定義系統(tǒng)的正確行為應(yīng)該是什么。在許多情況下,它是一個(gè)失敗的測試(紅色表示),但它可能會通過一個(gè)非決定性的或未實(shí)現(xiàn)的測試來表示。

4、擔(dān)心未實(shí)現(xiàn)測試

軟件開發(fā)中的一個(gè)大問題就是,代碼和任何關(guān)于系統(tǒng)實(shí)際上應(yīng)該做什么的文檔之間的溝壑。通過擁有一個(gè)名稱中明確定義你最終想要實(shí)現(xiàn)的預(yù)期行為的測試,你將從測試中得到一定的價(jià)值,即使將怎么寫測試目前還不得知。

5、沒有很好地命名測試

命名軟件這件事出了名的很難做好,這同樣適用于測試。關(guān)于如何命名測試有幾種流行的約定。無論你使用哪一種都沒有關(guān)系,只要你能夠一貫使用,并準(zhǔn)確描述正在測試什么。

6、讓測試做太多事情

又長又復(fù)雜的名字通常說明了你想同時(shí)測試多件事情。單個(gè)測試應(yīng)該只測試一件事情。如果失敗了也應(yīng)該在代碼中注明是什么地方出了錯(cuò)。你沒有必要為了知道代碼中出了什么問題而查看是哪部分測試失敗。這并不意味著你不應(yīng)該在測試中有多個(gè)斷言,但這些斷言應(yīng)該緊密相關(guān)。例如,一個(gè)查看訂單處理系統(tǒng)輸出,并確認(rèn)輸出中是否有一個(gè)單一項(xiàng)目以及它是否包含具體項(xiàng)目的測試,是ok的。但一個(gè)驗(yàn)證相同系統(tǒng)的輸出的測試,既創(chuàng)建一個(gè)特定項(xiàng)目,又記錄到數(shù)據(jù)庫中,還發(fā)送確認(rèn)電子郵件,就不行了。

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點(diǎn)或證實(shí)其描述。

相關(guān)視頻攻略

更多

同類最新

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)