mock就是在開發(fā)過程中,對(duì)于某些不容易構(gòu)造或者不容易獲取的對(duì)象,用一個(gè)虛擬的對(duì)象來(lái)創(chuàng)建以便測(cè)試開發(fā)的方法。
成都創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)宕昌,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575mock測(cè)試
就是在測(cè)試過程中,對(duì)于某些不容易構(gòu)造或者 不容易獲取的對(duì)象,用一個(gè)虛擬的對(duì)象來(lái)創(chuàng)建以便測(cè)試的測(cè)試方法。
mock對(duì)象
這個(gè)虛擬的對(duì)象就是mock對(duì)象。mock對(duì)象就是真實(shí)對(duì)象在調(diào)試期間的代替品。
mock對(duì)象使用范疇
真實(shí)對(duì)象具有不可確定的行為,產(chǎn)生不可預(yù)測(cè)的效果,(如:股票行情,天氣預(yù)報(bào)) 真實(shí)對(duì)象很難被創(chuàng)建的 真實(shí)對(duì)象的某些行為很難被觸發(fā) 真實(shí)對(duì)象實(shí)際上還不存在的(和其他開發(fā)小組或者和新的硬件打交道)等等.
使用mock對(duì)象測(cè)試的關(guān)鍵步驟
使用一個(gè)接口來(lái)描述這個(gè)對(duì)象 在產(chǎn)品代碼中實(shí)現(xiàn)這個(gè)接口 在測(cè)試代碼中實(shí)現(xiàn)這個(gè)接口 在被測(cè)試代碼中只是通過接口來(lái)引用對(duì)象,所以它不知道這個(gè)引用的對(duì)象是真實(shí)對(duì)象還是mock對(duì)象。
MockObject
使用Mock Object進(jìn)行測(cè)試,主要是用來(lái)模擬那些在應(yīng)用中不容易構(gòu)造(如HttpServletRequest必須在Servlet容器中才能構(gòu)造出來(lái))或者比較復(fù)雜的對(duì)象(如JDBC中的ResultSet對(duì)象)從而使測(cè)試順利進(jìn)行的工具。
目前,在Java陣營(yíng)中主要的Mock測(cè)試工具有JMock,MockCreator,Mockrunner,EasyMock,MockMaker等,在微軟的.Net陣營(yíng)中主要是Nmock,.NetMock等。
1.團(tuán)隊(duì)可以更好地并發(fā)工作
并發(fā)?沒錯(cuò),技術(shù)人員就應(yīng)該用并發(fā)這個(gè)詞。使用mock,各團(tuán)隊(duì)之間可以不需要再互相等待對(duì)方的進(jìn)度,只需要約定好相互之間的數(shù)據(jù)規(guī)范(文檔),即可使用mock構(gòu)建一個(gè)可用的接口,可以更快的進(jìn)行開發(fā)和調(diào)試以及自測(cè),提升開發(fā)進(jìn)度的同時(shí),也將發(fā)現(xiàn)缺陷的時(shí)間點(diǎn)大大提前。
2.開啟TDD(Test-Driven Development)模式,傳說中的測(cè)試驅(qū)動(dòng)開發(fā)
單元測(cè)試是TDD的常規(guī)操作,試想一下,當(dāng)你測(cè)試過程中,某些協(xié)同模塊沒有完成,如何進(jìn)行測(cè)試?這時(shí)mock就能很好的幫助你解決這個(gè)問題。當(dāng)接口定義好后,測(cè)試人員就可以創(chuàng)建一個(gè)mock,把接口添加到自動(dòng)化測(cè)試環(huán)境,提前創(chuàng)建測(cè)試。
3.測(cè)試覆蓋率
比如一個(gè)接口在各種不同的狀態(tài)下要返回不同的值,我們的傳統(tǒng)的做法是復(fù)現(xiàn)這種狀態(tài)然后再去請(qǐng)求接口,這是非常不科學(xué)的做法,而且這種復(fù)現(xiàn)方法很大可能性因?yàn)椴僮鞯臅r(shí)機(jī)或者操作方式不當(dāng)導(dǎo)致失敗,甚至污染之前數(shù)據(jù)庫(kù)中的數(shù)據(jù)。如果我們使用mock,就完全不用擔(dān)心這些問題。
4.方便演示
通過使用mock模擬數(shù)據(jù)接口,我們即可在只開發(fā)了UI的情況下,無(wú)須服務(wù)端的開發(fā)就可以進(jìn)行產(chǎn)品的演示。
5.隔離系統(tǒng)
在使用某些接口的時(shí)候,為了避免系統(tǒng)中數(shù)據(jù)庫(kù)被污染,我們可以將這些接口調(diào)整為mock的模式,以此保證數(shù)據(jù)庫(kù)的干凈。
mock有很多的在線平臺(tái),基本上都要注冊(cè),并且不穩(wěn)定。所以longyoung我就萌發(fā)了一個(gè)想法,能不能本地搭一個(gè)mock,方便快捷。即使沒網(wǎng)也可以工作,是不是很爽?在上網(wǎng)找了一圈,發(fā)現(xiàn)沒有比較簡(jiǎn)單的方法,后來(lái)通過努力,終于實(shí)現(xiàn)了。方法很簡(jiǎn)單,因此不是特別智能,后期可以想辦法升級(jí)下方法。廢話少說,直接上步驟:
1.安裝Node.js,請(qǐng)自行搜索安裝。
2.隨便到一個(gè)目錄下創(chuàng)建一個(gè)文件存放json數(shù)據(jù),如:test.json。
3.cd命令切換到文件目錄(如:D:\gittest\test),執(zhí)行命令:http-server -p 5050。-p是指定端口的意思,訪問的時(shí)候記得加端口號(hào)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。