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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Go Test Coverage - Go Tool Not Recognize err !

Go Test Coverage - Go Tool Not Recognize err !

Go
暮色呼如 2022-10-24 15:28:27
我正在學(xué)習(xí)一些有關(guān) Golang 測(cè)試覆蓋率的知識(shí),并且遇到了一些有趣的問(wèn)題。我有一個(gè)公平的基本代碼來(lái)調(diào)用 API 和執(zhí)行http.Client.Do(request). 執(zhí)行后,我檢查錯(cuò)誤并在找到時(shí)返回。resp, err := Client.Do(request)if err != nil {    return response, err}此外,我還為它添加了測(cè)試。我在哪里模擬Do函數(shù)并返回錯(cuò)誤。mocks.DoFunc = func(*http.Request) (*http.Response, error) {    return nil, errors.New("hello world")}當(dāng)我記錄if err != nil條件時(shí),我可以看到我的代碼正在運(yùn)行并被這個(gè)簡(jiǎn)單的評(píng)估捕獲。我的問(wèn)題在執(zhí)行時(shí)開始 go tool cover -html=coverage.out。輸出表明未涵蓋此條件。所以,為什么我可以在登錄時(shí)檢查它,而 go 工具沒有檢測(cè)到它,我錯(cuò)過(guò)了什么?
查看完整描述

1 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

好的。不確定,但工作。

似乎測(cè)試順序在 TestCoverage 上非常重要,創(chuàng)建從最少到第一個(gè)評(píng)估的測(cè)試就可以if err != nil了。

我的代碼做一個(gè)簡(jiǎn)單的獲取 API:

  1. 創(chuàng)建一個(gè)響應(yīng)對(duì)象

  2. 格式化 URL + ID

  3. 創(chuàng)建一個(gè) Http.NewREquest

  4. 評(píng)估 NewRequest 錯(cuò)誤

  5. 執(zhí)行 http.Client.Do(request)

  6. 評(píng)估做錯(cuò)

  7. 等等等等……

...

response := &Response{}


url := fmt.Sprintf(pokeapiURLById, pokeId)


request, err := http.NewRequest(http.MethodGet, url, nil)


if err != nil {

    return nil, err

}


resp, err := Client.Do(request)


if err != nil {

    return nil, err

}

...


按以下順序創(chuàng)建的測(cè)試。


func TestFetchById_WhenHttpNewRequestFails(t *testing.T) {...


func TestFetchById_WhenClientDoFails(t *testing.T) {...

首先,我測(cè)試 NewRequest 錯(cuò)誤,然后測(cè)試 Client.Do(req) 錯(cuò)誤。這樣我就獲得了 80% 的測(cè)試覆蓋率......


當(dāng)我更改測(cè)試方法的順序時(shí):


func TestFetchById_WhenClientDoFails(t *testing.T) {...


func TestFetchById_WhenHttpNewRequestFails(t *testing.T) {...

我有 100% 的測(cè)試覆蓋率。我不知道這是一個(gè)問(wèn)題還是應(yīng)該是那樣的......但是,現(xiàn)在,它運(yùn)行良好。


查看完整回答
反對(duì) 回復(fù) 2022-10-24
  • 1 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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