自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#單元測(cè)試的一個(gè)小故事

開發(fā) 后端
C#單元測(cè)試是什么呢?這里我們不是要向你介紹一個(gè)簡(jiǎn)單的例子,而是從一個(gè)故事入手向你介紹C#單元測(cè)試的作用、存在的意義是什么?希望對(duì)你理解C#單元測(cè)試有所幫助。

C#單元測(cè)試小故事,或許你不了解或是正在學(xué)習(xí)C#單元測(cè)試,那么這個(gè)小故事的內(nèi)涵正式揭示了C#單元測(cè)試的實(shí)際意義,那么C#單元測(cè)試的意義是什么呢?它能帶給我們什么呢?讓我們來看看:

有一次,有兩個(gè)開發(fā)者:Pat 和Dale。他們面臨著相同的***期限,而這一天也越來越近了。Pat 每天都在著急地編寫代碼,寫完一個(gè)類又寫一個(gè)類,寫完一個(gè)函數(shù)又接著寫另一個(gè)函數(shù),還經(jīng)常不得不停下來做一些調(diào)整,使得代碼能夠通過編譯。

Pat 一直保持著這種工作方式,直到***期限的前一天。而這時(shí)已經(jīng)是演示所有代碼的時(shí)候了。Pat 運(yùn)行了最上層的程序,但是一點(diǎn)輸出也沒有,什么都沒有。這時(shí)只好用調(diào)試器來單步跟蹤了。“Hmm,決不可能是這樣的”,Pat 想,“此時(shí)這個(gè)變量絕對(duì)不是0 啊”。于是,Pat 只能回過頭來看代碼,嘗試著跟蹤一下這個(gè)難以琢磨的程序的調(diào)用流程。

時(shí)間已經(jīng)越來越晚了,Pat 找到并且糾正了這個(gè)bug;但在這個(gè)過程中,Pat 又找到了其他好幾個(gè)bug;如此幾次過后,bug 還是存在。而程序輸出那邊,仍然沒有結(jié)果。這時(shí),Pat 已經(jīng)筋疲力盡了,完全搞不清楚為什么會(huì)這樣,認(rèn)為這種(沒有輸出的)行為是毫無道理的。

而于此同時(shí),Dale 并沒像Pat 那么快地寫代碼。Dale 在寫一個(gè)函數(shù)的時(shí)候,會(huì)附帶寫一個(gè)簡(jiǎn)短的測(cè)試程序來測(cè)試這個(gè)函數(shù)(C#單元測(cè)試的使用)。這里沒有什么特殊的地方,只是添加了一個(gè)簡(jiǎn)單的測(cè)試,來判斷函數(shù)的功能是否和程序員期望的一致。顯然,考慮如何寫,然后把測(cè)試寫出來,是需要占用一定時(shí)間的;但是Dale 在未對(duì)剛寫的函數(shù)做出確認(rèn)之前,是不會(huì)接著寫新代碼的。也就是說,只有等到已知函數(shù)都得到確認(rèn)之后,Dale 才會(huì)繼續(xù)編寫下一個(gè)函數(shù),然后調(diào)用前面的函數(shù)等等。

在整個(gè)過程中,Dale 幾乎不使用調(diào)試器(C#單元測(cè)試的功勞);而且對(duì)Pat 的模樣也有些困惑不解:只見他頭埋在兩手之間,嘀咕著各種難聽的話語,咒罵著計(jì)算機(jī),充血的眼球同時(shí)盯著好幾個(gè)調(diào)試窗口。

***期限終于到了,Pat 未能完成任務(wù)。而Dale 的代碼被集成到整個(gè)系統(tǒng)中,并且能夠很好地運(yùn)行。之后,在Dale 的模塊中,出現(xiàn)了一個(gè)小問題;但是Dale 很快就發(fā)現(xiàn)了問題所在,在幾分鐘之內(nèi)就解決了問題。

現(xiàn)在,是該總結(jié)一下上面這個(gè)小故事的時(shí)候了:Dale 和Pat 的年紀(jì)相當(dāng),編碼能力相當(dāng),智力也差不多。唯一的區(qū)別就是Dale 非常相信單元測(cè)試;對(duì)于每個(gè)新寫的函數(shù),在其他代碼使用這個(gè)函數(shù)并對(duì)它形成依賴之前,都要先做單元測(cè)試。

而Pat 則沒有這么做,他總是“知道”代碼的行為應(yīng)該和所期望的完全一樣,并且等到所有代碼都差不多寫完的時(shí)候,才想起來運(yùn)行一下代碼。然而到了這個(gè)時(shí)候,要想定位bug,或者,甚至是確定哪些代碼的行為是正確的,哪些代碼的行為是錯(cuò)誤的,都為時(shí)已晚了。

C#單元測(cè)試的小故事就向你介紹到這里,那么通過這兩個(gè)程序員的開發(fā)過程,大致的關(guān)于C#單元測(cè)試的理解是不是對(duì)你有點(diǎn)幫助呢?

【編輯推薦】

  1. C#創(chuàng)建Excel文件實(shí)例講解
  2. 淺析C#創(chuàng)建Excel文件實(shí)現(xiàn)的實(shí)際操作
  3. C#多態(tài)性的理解詳談
  4. C#多態(tài)性概念及特點(diǎn)的解析
  5. C#取整函數(shù)實(shí)例應(yīng)用詳解
責(zé)任編輯:仲衡 來源: 博客園
相關(guān)推薦

2009-09-01 16:35:16

C#單元測(cè)試

2009-09-01 16:10:28

C#單元測(cè)試

2009-09-01 16:45:00

C#單元測(cè)試工具

2024-04-26 11:14:34

C#單元測(cè)試框架

2009-09-01 16:20:27

C#單元測(cè)試

2009-09-01 16:29:01

C#單元測(cè)試

2017-01-14 23:42:49

單元測(cè)試框架軟件測(cè)試

2024-10-16 16:09:32

2010-01-15 14:10:42

C++單元測(cè)試

2022-02-14 22:22:30

單元測(cè)試Junit5

2014-02-25 10:25:52

單元測(cè)試測(cè)試

2021-09-27 13:02:05

Python技巧測(cè)試

2018-04-13 06:46:43

無服務(wù)器單元測(cè)試IT云

2023-07-26 08:58:45

Golang單元測(cè)試

2011-05-16 16:52:09

單元測(cè)試徹底測(cè)試

2017-01-14 23:26:17

單元測(cè)試JUnit測(cè)試

2017-01-16 12:12:29

單元測(cè)試JUnit

2011-06-14 15:56:42

單元測(cè)試

2020-08-18 08:10:02

單元測(cè)試Java

2022-05-12 09:37:03

測(cè)試JUnit開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)