? ? 開始之前說個故事。
? ? 一開始提出代碼包化時團隊是覺得不可思議变抽,這套架構(gòu)由來已久础拨,而且正運行在超過千萬臺現(xiàn)網(wǎng)設(shè)備中氮块,這樣的大改會有多少個坑等著,是個未知數(shù)诡宗。但考慮到之前提到的困境理肺,如果平臺代碼不能向產(chǎn)品開發(fā)團隊交付接近即插即用的代碼包堰氓,將會和產(chǎn)品漸行漸遠站楚,失去平臺存在的意義单起。平臺的開發(fā)團隊思考了很久,決定打造質(zhì)量保護網(wǎng)-單元測試蛀柴。
? ? ? 我們的產(chǎn)品代碼主要是嵌入式c螃概,測試框架用的是cpputest。結(jié)合這次代碼包化調(diào)整鸽疾,我們采用結(jié)合ttd方法推動功能代碼的設(shè)計實現(xiàn)吊洼。
? ? 測試框架如圖所示,每個模塊都有各自的測試用例肮韧,內(nèi)部樁(這里其實我們有的是stub,有的是fake融蹂,后面就不區(qū)分了旺订,都稱為樁)弄企,向外提供的接口樁,各自可以獨立編譯区拳,運行拘领,顯示結(jié)果。
? ? 一套產(chǎn)品樱调,模塊的依賴是比較復(fù)雜的约素,這就決定樁體系不會那么簡單。所以一開始各業(yè)務(wù)先通過獨立編譯單元測試工程笆凌,梳理其依賴圣猎,比如收發(fā)報文調(diào)用,比如系統(tǒng)命令調(diào)用乞而,又比如數(shù)據(jù)庫的調(diào)用送悔。業(yè)務(wù)模塊即使樁的使用者,也是裝的提供者爪模。團隊內(nèi)匯總后就是樁的需求規(guī)劃欠啤,就有了開發(fā)計劃,下面要做的就是迭代開發(fā)屋灌。
? ?