這篇文章主要介紹了spock框架中測試樁怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站專業(yè)提供成都移動(dòng)機(jī)房服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買成都移動(dòng)機(jī)房服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。
when: int a = 12; int b = xxxService.squre(a); int c = xxxService.plus(a, b); then: c == 100
假如我們需要測試以上代碼,但被告知squre方法目前還沒開發(fā)完成,或者正在修改中,現(xiàn)在使用無法得到正確的結(jié)果。
這時(shí)就可以用測試樁:給squre()方法造一個(gè)或多個(gè)假的返回值,讓我們能夠正常測試后面的plus()方法。
測試樁Stub與Mock的具體解釋在后面代碼注釋中做了說明。
package com.yawn.spock import com.yawn.spock.service.CalculateInterface import com.yawn.spock.service.CalculateService import spock.lang.Specification /** * <pre> * * Stub與Mock * (1)相同點(diǎn) * Stub和Mock對象都是用來模擬外部依賴,使我們能控制。 * 如果被測程序、系統(tǒng)或?qū)ο?,我們稱之為A。在測試A的過程中, * A需要與程序、系統(tǒng)或?qū)ο驜進(jìn)行交互,那么Stub/Mock就是用來模擬B的行為來與A進(jìn)行交互。 * (2)不同點(diǎn) * Stub,也即“樁”,很早就有這個(gè)說法了,主要出現(xiàn)在集成測試的過程中, * 從上往下的集成時(shí),作為下方程序的替代。作用如其名,就是在需要時(shí), * 能夠發(fā)現(xiàn)它存在,即可。就好像點(diǎn)名,“到”即可。 * Mock,主要是指某個(gè)程序的傀儡,也即一個(gè)虛假的程序, * 可以按照測試者的意愿做出響應(yīng),返回被測對象需要得到的信息。 * 也即是要風(fēng)得風(fēng)、要雨得雨、要返回什么值就返回什么值。 * * 總體來說,stub完全是模擬一個(gè)外部依賴,用來提供測試時(shí)所需要的測試數(shù)據(jù)。 * 而mock對象用來判斷測試是否能通過,也就是用來驗(yàn)證測試中依賴對象間的交互能否達(dá)到預(yù)期。 * </pre> * @author yawn * 2019/6/10 14:52 */ class MockSpec extends Specification { def "mock 測試樁"() { given: "構(gòu)造測試樁" CalculateInterface calculateService = Stub(CalculateInterface) calculateService.plusPlus(_) >> 1 when: int x = calculateService.plusPlus(12) int y = calculateService.plusPlus(3) then: x == 1 y == 1 } def "mock 測試樁得到不同的多個(gè)值"() { given: "構(gòu)造測試樁" CalculateService calculateService = Stub(CalculateService) calculateService.plusPlus(_) >>> [1, 2, 3] when: int x = calculateService.plusPlus(12) int y = calculateService.plusPlus(3) int z = calculateService.plusPlus(2) then: x == 1 y == 2 z == 3 } }
使用Stub與Mock方法就可以得到對應(yīng)的傀儡實(shí)例,我們可以對這個(gè) 傀儡 實(shí)例定義其方法的返回值。
calculateService.plusPlus(_) >> 1 // 定義了一個(gè)返回值
calculateService.plusPlus(_) >>> [1, 2, 3] // 定義了多個(gè)返回值,每次執(zhí)行,按照順序取一個(gè)作為返回值。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“spock框架中測試樁怎么用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
網(wǎng)站名稱:spock框架中測試樁怎么用
轉(zhuǎn)載來源:http://jinyejixie.com/article18/ipicgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、搜索引擎優(yōu)化、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)