1.綜述
測試時(shí)最大的問題包括代碼如何與其他對象交互。我們將其分成兩個(gè)方面。
在測試環(huán)境中不能(或不想)支持的外部依賴:例如數(shù)據(jù)庫、REST API調(diào)用和緩存。
與其他代碼不透明的交互:當(dāng)滿足一定條件時(shí),被測代碼會(huì)調(diào)用其他代碼。
可以通過事先考慮和應(yīng)用車技解決這些問題。下面的技術(shù)是容易實(shí)現(xiàn)的。
2.數(shù)據(jù)庫
對于遺留的數(shù)據(jù)庫程序代碼,破壞數(shù)據(jù)庫依賴是最大的挑戰(zhàn)之一。測試這些代碼是一個(gè)不斷前進(jìn)的過程,因?yàn)橹貥?gòu)代碼是為了使其更好地工作。在傳統(tǒng)方法中,我們用模擬數(shù)據(jù)替代來自數(shù)據(jù)庫的數(shù)據(jù),該方法在簡單的案例中是有用的,但是當(dāng)測試復(fù)雜交互的需求增加時(shí),就需要做一些更復(fù)雜的工作。
解決方案時(shí)使用SQLite為網(wǎng)絡(luò)監(jiān)控工具的數(shù)據(jù)庫抽象層創(chuàng)建新驅(qū)動(dòng)。測試代碼時(shí),可使用SQLite數(shù)據(jù)庫創(chuàng)建模擬環(huán)境并向新指向類的數(shù)據(jù)庫實(shí)例注入類。創(chuàng)建工作相當(dāng)復(fù)雜,在不同的層次上需要包含多個(gè)模擬對象。因?yàn)椋跍y試交互時(shí)是希望用到它的,所有當(dāng)首次運(yùn)行測試時(shí)只創(chuàng)建一次。該測試案例的剩余部分重用同樣的環(huán)境然后破壞該環(huán)境。在套件的后續(xù)案例中將創(chuàng)建新環(huán)境,這由創(chuàng)建的測試案例類實(shí)現(xiàn),由此套件中的所有案例都可以擴(kuò)展。如果還沒有為案例創(chuàng)建它,它的setUpO方法將創(chuàng)建環(huán)境。子類在做任何其他測試案例之前將調(diào)用setUpO。
這種方法還有其他問題。特別是當(dāng)執(zhí)行復(fù)雜查詢或MySQL具體查詢時(shí)。但對特定的代碼前言,它時(shí)極其高效的測試方法。
3.松散耦合依賴
我們采用的最有效的測試方法之一是Visitor模式的改編版本,被稱為Acceptor。對有外部依賴的類,我們用明確的方法獲取當(dāng)前實(shí)例并注入新實(shí)例。
Pattern Acceptor Common實(shí)現(xiàn)了Pattern Acceptor接口。它提供一個(gè)accept方法,該方法允許任意對象在acceptable中所列出的一個(gè)類上傳送instance of測試。當(dāng)調(diào)用getDefaultFoo。如此,類可以定義它們所依賴的對象,從而可以輕易進(jìn)行替換。
用私有cache、相似變量及顯示getDB和getCahe方法執(zhí)行它的簡化版本是沒有意義的。這些簡化版本用起來是很舒服,但是當(dāng)開始大規(guī)模應(yīng)用它時(shí),建立可重用的實(shí)現(xiàn)是要付出代價(jià)的。
★關(guān)于WorkWin公司電腦監(jiān)控軟件★
WorkWin的使命是打造Work用途的Windows 電腦系統(tǒng),有效規(guī)范員工上網(wǎng)行為,讓老板知道員工每天在做什么(監(jiān)控包括屏幕、上網(wǎng)在內(nèi)的一舉一動(dòng)),限制員工不能做什么(禁止網(wǎng)購、游戲、優(yōu)盤等)。
WorkWin基于純軟件設(shè)計(jì),非常容易使用,無需添加或改動(dòng)任何硬件,使用一臺(tái)管理機(jī)監(jiān)控全部員工機(jī)電腦。歷經(jīng)南京網(wǎng)亞十余年精心打造,此時(shí)此刻每天都有成千上萬企業(yè)電腦正在運(yùn)行WorkWin,選擇WorkWin選擇“贏”。
WorkWin監(jiān)控首頁 短視頻講解 下載免費(fèi)試用版
版權(quán)所有,南京網(wǎng)亞計(jì)算機(jī)有限公司 。本文鏈接地址: 網(wǎng)絡(luò)監(jiān)控工具的模擬數(shù)據(jù)對象