單元測試是軟件質(zhì)量的基本保證泼掠。但是怔软,單元測試的概念至今應(yīng)該有二十年之久,現(xiàn)實(shí)中在國內(nèi)仍少有實(shí)踐择镇,聽說即便是一線互聯(lián)網(wǎng)大廠亦是如此挡逼。或許互聯(lián)網(wǎng)業(yè)務(wù)反而因變動頻繁腻豌,更加崇尚速度家坎,一定程度上忽略了質(zhì)量。先上線吝梅,再迭代(修補(bǔ))是更普遍被接受的理念吧虱疏。
然而,更可能的原因是苏携,單元測試不好寫订框,不會寫。
很多參考資料中單元測試的示例往往非常簡單兜叨。基本上都是拿類似計(jì)算器之類與業(yè)務(wù)無關(guān)的邏輯來作為案例衩侥。而現(xiàn)實(shí)中国旷,大量業(yè)務(wù)邏輯才是測試的重點(diǎn),而它們又往往與大量的技術(shù)基礎(chǔ)設(shè)施糾纏不清茫死,從而無法方便地進(jìn)行單元測試跪但。最后,能做單元測試的就只剩下工具類了峦萎。
業(yè)務(wù)邏輯是軟件的核心復(fù)雜性所在屡久,也是測試的重中之重。為了讓業(yè)務(wù)邏輯可測爱榔,首先要做的被环,就是要將業(yè)務(wù)邏輯與技術(shù)設(shè)施剝離。只有當(dāng)業(yè)務(wù)邏輯不依賴基礎(chǔ)設(shè)施時详幽,才能夠?qū)λ?dú)立地進(jìn)行測試筛欢。
怎么才能實(shí)現(xiàn)這種剝離呢?領(lǐng)域驅(qū)動設(shè)計(jì)開發(fā)方法給我們指明了方向唇聘。通過分離出存粹的領(lǐng)域?qū)影婀茫箻I(yè)務(wù)邏輯單元測試變得可行。當(dāng)然迟郎,具體需要依靠各種解耦原則與方法剥险,比如依賴接口,注入實(shí)現(xiàn)等等宪肖。