C#單元測(cè)試的使用的安全性淺析
這里我們來(lái)談?wù)凜#單元測(cè)試是不是值得依賴呢?針對(duì)這個(gè)問(wèn)題,想是很多剛剛接觸C#單元測(cè)試的程序員,那么下面的解釋會(huì)完全解除你的顧慮,那么開(kāi)始我們的講述吧:
對(duì)C#單元測(cè)試依賴疑惑的解析:
不能依賴的代碼是沒(méi)有多大用處的。但更糟糕的是,那些你自認(rèn)為可以信賴的代碼(但是結(jié)果證明這些代碼是有bug 的)有時(shí)候也會(huì)讓你花很多時(shí)間在跟蹤和調(diào)試上面。顯然,幾乎沒(méi)有項(xiàng)目可以允許你在這上面浪費(fèi)太多的時(shí)間,因此無(wú)論如何,你都要避免這種“前進(jìn)一步,后退兩步”的開(kāi)發(fā)方法。也就是說(shuō),要讓開(kāi)發(fā)過(guò)程保持穩(wěn)定的步伐前進(jìn)。
對(duì)C#單元測(cè)試依賴的內(nèi)涵解析:
沒(méi)人能夠?qū)懗?**無(wú)缺的代碼;但是這并沒(méi)有關(guān)系——只要你知道問(wèn)題的所在就足夠了。許多大型軟件項(xiàng)目的失敗,諸如只能把壞了的太空船擱淺在遙遠(yuǎn)的行星,或者在飛行的途中就爆炸了,都能通過(guò)認(rèn)知軟件的限制來(lái)避免。例如,Arianne 5 號(hào)火箭軟件重用了來(lái)自于之前一個(gè)火箭項(xiàng)目的一個(gè)程序庫(kù),而這個(gè)程序庫(kù)并不能處理新火箭的飛行高度(比原來(lái)火箭要高)(引入單元測(cè)試是很簡(jiǎn)單的,因?yàn)樗旧砭统錆M了樂(lè)趣。然而在項(xiàng)目交付的時(shí)候,我們給客戶和最終用戶的仍然是產(chǎn)品代碼,而不包含單元測(cè)試的代碼;因此,我們必須對(duì)單元測(cè)試的目的有個(gè)充分的認(rèn)識(shí)。首先也是最重要的,使用單元測(cè)試是為了使你的工作——以及你隊(duì)友的工作——完成得更加輕松。) ,從而在起飛40 秒之后就發(fā)生了爆炸,導(dǎo)致5 億美元的損失。
對(duì)C#單元測(cè)試依賴的真正含義:
顯然,我們希望能夠依賴于所編寫(xiě)的代碼,并且清楚地知道這些代碼的功能和約束。
例如,假設(shè)你寫(xiě)了一個(gè)反轉(zhuǎn)數(shù)值序列的方法。在測(cè)試的過(guò)程中,你也許會(huì)傳一個(gè)空序列給這個(gè)程序——但導(dǎo)致了程序崩潰。實(shí)際上,程序并沒(méi)有要求該程序必須能夠接收一個(gè)空序列,因此你可以只在方法的注釋中說(shuō)明這個(gè)約束:如果傳遞一個(gè)空序列給這個(gè)方法,那么這個(gè)方法將會(huì)拋出一個(gè)異常。現(xiàn)在你馬上就知道了該代碼的約束,從而也就不需要用其他很麻煩的方法來(lái)解決這個(gè)問(wèn)題(因?yàn)樵谀承┑攸c(diǎn)要解決這個(gè)問(wèn)題并不方便,比如在高空大氣層中)。
有關(guān)C#單元測(cè)試的依賴性的問(wèn)題我們就探討到這里,希望對(duì)你了解和學(xué)習(xí)對(duì)C#單元測(cè)試有所幫助。
【編輯推薦】
























