第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 spock 中為 Rest Service API 編寫集成測試

如何在 spock 中為 Rest Service API 編寫集成測試

qq_笑_17 2021-09-26 14:24:04
我有一個包含 API 方法的 Java 類前任:@GET@Path("/{id}")public Resposce getIds(@PathParam(name) String name) {     //some code here }我想對此 API 進行正確的集成測試,即在測試時我想使用path但不使用方法名稱調(diào)用此方法
查看完整描述

2 回答

?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

這對我有用


import com.charter.aesd.testcommons.RESTSpecification

import groovyx.net.http.HttpResponseDecorator



class TestIT extends RESTSpecification{


    def BASE_URL = "/test"

    def "Get test"(){

        when:

        HttpResponseDecorator response = getRestClient().get([path:"$BASE_URL"+"/123"])


        then:

            response.status >=200 && response.status < 400

    }


    @Override

    String getBaseUrl() {

        return 'http://localhost:8889/'

    }

}


查看完整回答
反對 回復(fù) 2021-09-26
?
揚帆大魚

TA貢獻1799條經(jīng)驗 獲得超9個贊

正如您明確要求 Spock:這是我的標準實現(xiàn)ApiSpec:


@SpringBootTest(webEnvironment = RANDOM_PORT)

abstract class AbstractServiceSpec extends Specification {


    protected final static RestTestClient api = new RestTestClient()


    @Value('http://localhost:${local.server.port}')

    String serviceUrl


    def setup() {

        api.baseUrl = serviceUrl

    }


    def "GET /health should return 200"() {

        expect:

        api.get("/health").code() == 200

    }

}

請注意,這RestTestClient是我自己的 OkHttp 包裝器。當然,您可以使用手頭的任何 HTTP 客戶端。


該@SpringBootTest注解使得春季啟動的全程服務(wù)。在執(zhí)行測試時,服務(wù)已完全啟動并運行,您可以對 API 進行黑盒測試。


通常測試 Web 層是一個很好的讀物,其中大部分——正如你在示例中看到的——可以在 Spock 和 JUnit 中完成。


查看完整回答
反對 回復(fù) 2021-09-26
  • 2 回答
  • 0 關(guān)注
  • 275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號