中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

單元測(cè)試的目的

發(fā)布于:2021-01-26 10:41:00

0

456

0

單元測(cè)試 TDD 開發(fā)

在你開始學(xué)習(xí)任何新的技能或概念之前,我建議你先看看我的課程“快速學(xué)習(xí)任何東西的10個(gè)步驟”。

昨天有人提醒我,仍然有很多人還沒有真正理解單元測(cè)試的目的。

最近5年左右發(fā)生了一個(gè)有趣的轉(zhuǎn)變。

大約5年前,當(dāng)我建議在創(chuàng)建代碼時(shí)使用TDD或者只是做一些單元測(cè)試時(shí),我會(huì)得到可怕的回應(yīng),許多開發(fā)人員和管理人員不明白為什么單元測(cè)試很重要,認(rèn)為這只是額外的工作。

最近,當(dāng)我聽到人們談?wù)搯卧獪y(cè)試時(shí),幾乎每個(gè)人都同意單元測(cè)試是一個(gè)好主意,但不是因?yàn)樗麄兝斫鉃槭裁?,而是因?yàn)楝F(xiàn)在編程界期待著單元測(cè)試。

沒有理解的進(jìn)步只是在一個(gè)隨機(jī)的方向上前進(jìn)。

回到基本點(diǎn)

單元測(cè)試根本不是測(cè)試。

單元測(cè)試,尤其是測(cè)試驅(qū)動(dòng)開發(fā),是一種設(shè)計(jì)或?qū)崿F(xiàn)活動(dòng),而不是一種測(cè)試活動(dòng)。

單元測(cè)試有兩個(gè)主要好處,其中大部分價(jià)值都?xì)w第一個(gè):

  1. 引導(dǎo)您的設(shè)計(jì)實(shí)現(xiàn)松散耦合和良好充實(shí)。如果進(jìn)行測(cè)試驅(qū)動(dòng)開發(fā),它會(huì)將您編寫的代碼限制為只需要的代碼,并幫助您以小步的方式改進(jìn)代碼。

  2. 為重構(gòu)和代碼的小改動(dòng)提供快速自動(dòng)回歸。

我不是說這就是全部的價(jià)值,但這是最重要的兩個(gè)。

單元測(cè)試強(qiáng)制您實(shí)際使用正在創(chuàng)建的類,如果類太大并且包含多個(gè)責(zé)任,則會(huì)對(duì)您進(jìn)行懲罰。

通過這種痛苦,您可以將設(shè)計(jì)更改為更具內(nèi)聚性和松散耦合性。

您可以考慮您的類可能面臨的更多場(chǎng)景,并確定這些場(chǎng)景的行為,從而驅(qū)動(dòng)類的設(shè)計(jì)和完整性。

完成后,您將得到一些自動(dòng)化測(cè)試,這些測(cè)試不能確保系統(tǒng)正常工作,但可以確保功能不會(huì)更改。

實(shí)際上,在創(chuàng)建代碼時(shí),大部分的價(jià)值都是在創(chuàng)建單元測(cè)試的過程中產(chǎn)生的,這就是為什么在編寫代碼之后再回去編寫單元測(cè)試是沒有意義的主要原因之一。

有缺陷的思維

下面是一些不好的no no,它們表明您不了解單元測(cè)試:

  • 您在編寫代碼之后編寫單元測(cè)試,而不是在編寫代碼期間或之前。

  • 您讓其他人為您的代碼編寫單元測(cè)試。

  • 您編寫集成測(cè)試或系統(tǒng)測(cè)試并調(diào)用它們,僅僅因?yàn)樗鼈冎苯诱{(diào)用代碼中的方法。

  • 您讓QA編寫單元測(cè)試,因?yàn)樗鼈儺吘故菧y(cè)試。

單元測(cè)試有很多工作要寫,如果你想用單元測(cè)試來覆蓋整個(gè)系統(tǒng),并有相當(dāng)多的代碼覆蓋率,你所說的是大量的工作。

如果您沒有獲得單元測(cè)試的第一個(gè)主要價(jià)值,改進(jìn)您的設(shè)計(jì),那么編寫單元測(cè)試就是在浪費(fèi)大量的時(shí)間和金錢。

老實(shí)說,你認(rèn)為把一堆你已經(jīng)寫過的代碼或者其他人已經(jīng)寫過的代碼交給每個(gè)人來編寫單元測(cè)試會(huì)怎么樣?

你認(rèn)為僅僅通過添加單元測(cè)試而不改變代碼就能神奇地改進(jìn)代碼嗎?

也許你認(rèn)為回歸的價(jià)值如此之高,以至于可以證明這種成本是合理的?

我并不是說不要在遺留代碼中添加單元測(cè)試,我是說當(dāng)你在遺留代碼中添加單元測(cè)試時(shí),你最好從中獲得你的價(jià)值,因?yàn)檫@是一項(xiàng)艱苦的工作,需要花費(fèi)很多時(shí)間。

當(dāng)您觸及遺留代碼時(shí),重構(gòu)該代碼并使用單元測(cè)試來指導(dǎo)重構(gòu)后的設(shè)計(jì)。

不要認(rèn)為單元測(cè)試是神奇的。

單元測(cè)試就像一個(gè)指導(dǎo)方針,它可以幫助你把問題解決得更清楚。在你已經(jīng)解決了問題之后,再給一個(gè)word-working項(xiàng)目添加指導(dǎo)方針是很可笑的。