91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spock框架中測試樁怎么用

發布時間:2021-09-19 12:39:46 來源:億速云 閱讀:162 作者:小新 欄目:大數據

這篇文章主要介紹了spock框架中測試樁怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

使用場景

when:
int a = 12;
int b = xxxService.squre(a);
int c = xxxService.plus(a, b);
then:
c == 100

假如我們需要測試以上代碼,但被告知squre方法目前還沒開發完成,或者正在修改中,現在使用無法得到正確的結果。

這時就可以用測試樁:給squre()方法造一個或多個假的返回值,讓我們能夠正常測試后面的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)相同點
 *      Stub和Mock對象都是用來模擬外部依賴,使我們能控制。
 *      如果被測程序、系統或對象,我們稱之為A。在測試A的過程中,
 *      A需要與程序、系統或對象B進行交互,那么Stub/Mock就是用來模擬B的行為來與A進行交互。
 * (2)不同點
 *      Stub,也即“樁”,很早就有這個說法了,主要出現在集成測試的過程中,
 *      從上往下的集成時,作為下方程序的替代。作用如其名,就是在需要時,
 *      能夠發現它存在,即可。就好像點名,“到”即可。
 *      Mock,主要是指某個程序的傀儡,也即一個虛假的程序,
 *      可以按照測試者的意愿做出響應,返回被測對象需要得到的信息。
 *      也即是要風得風、要雨得雨、要返回什么值就返回什么值。
 *
 *      總體來說,stub完全是模擬一個外部依賴,用來提供測試時所需要的測試數據。
 *      而mock對象用來判斷測試是否能通過,也就是用來驗證測試中依賴對象間的交互能否達到預期。
 * </pre>
 * @author yawn
 *     2019/6/10 14:52
 */
class MockSpec extends Specification {

    def "mock 測試樁"() {
        given: "構造測試樁"
        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 測試樁得到不同的多個值"() {
        given: "構造測試樁"
        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方法就可以得到對應的傀儡實例,我們可以對這個 傀儡 實例定義其方法的返回值。

calculateService.plusPlus(_) >> 1 // 定義了一個返回值

calculateService.plusPlus(_) >>> [1, 2, 3] // 定義了多個返回值,每次執行,按照順序取一個作為返回值。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“spock框架中測試樁怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寿阳县| 新竹县| 库尔勒市| 九江市| 宁国市| 玉龙| 广宁县| 逊克县| 庄浪县| 瑞昌市| 渭源县| 临安市| 来宾市| 游戏| 乐清市| 新乡县| 于田县| 阿荣旗| 花垣县| 德阳市| 蒙自县| 石渠县| 兴义市| 县级市| 麦盖提县| 共和县| 伊宁市| 双桥区| 南漳县| 长葛市| 宝山区| 延庆县| 萨嘎县| 永州市| 丰台区| 岚皋县| 通许县| 堆龙德庆县| 乌拉特中旗| 武义县| 江达县|