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

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

如何在 Golang 中獲得 100% 的代碼覆蓋率?

如何在 Golang 中獲得 100% 的代碼覆蓋率?

Go
明月笑刀無(wú)情 2021-11-22 18:41:23
我無(wú)法獲得 100% 的代碼覆蓋率,因?yàn)槲覠o(wú)法在 Golang 中測(cè)試 Fatals。我找到了一些問(wèn)答,包括這個(gè),但我迷路了,因?yàn)樘拥拇鸢甘敲艿?。一方面可以?Golang 中檢查代碼覆蓋率。另一方面,有些人主張忽略 eg 的測(cè)試log.Fatal(err),導(dǎo)致代碼覆蓋率小于100%.嘗試作為一種解決方法,我全部替換log.Fatal為panic并感謝這個(gè)答案,我能夠測(cè)試所有的恐慌并實(shí)現(xiàn) 100% 的代碼覆蓋率。問(wèn)題雖然我能夠獲得 100% 的代碼覆蓋率,但我并不高興,因?yàn)槲一旧鲜窃跒E用panic以獲得 100% 的代碼覆蓋率。根據(jù)這個(gè)答案apanic使用:當(dāng)程序或其部分達(dá)到不可恢復(fù)狀態(tài)時(shí)根據(jù)這個(gè)定義,我的代碼中有多個(gè)片段可以引發(fā)恐慌,而log.Fatal應(yīng)該使用 a 。
查看完整描述

2 回答

?
絕地?zé)o雙

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

出于這個(gè)原因,我發(fā)現(xiàn)除了 main 之外的所有函數(shù)和包返回錯(cuò)誤而不是直接調(diào)用 log.Fatal 都很有用。然后它可以是主要的決定是否退出錯(cuò)誤。盡管在很多情況下嘗試獲得 100% 的測(cè)試覆蓋率可能會(huì)導(dǎo)致收益遞減,因此稱其為足夠好也可以。


查看完整回答
反對(duì) 回復(fù) 2021-11-22
?
慕田峪7331174

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

我可以建議的一個(gè)技巧是,不要調(diào)用log.Fatal,而是使用相同的簽名制作自己的致命函數(shù):


var fatal func(...interface{}) = log.Fatal

在您的包裹中的任何地方。它可以是未導(dǎo)出的,因此其他包無(wú)法設(shè)置或使用它。然后在您的測(cè)試中,您可以將其替換為:


fatal = func(v ...interface){

    panic(fmt.Sprint(v...))

}

或者你想做的任何事情。


當(dāng)我需要測(cè)試 time.Now 或類似的東西時(shí),我會(huì)使用這種技巧。


查看完整回答
反對(duì) 回復(fù) 2021-11-22
  • 2 回答
  • 0 關(guān)注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報(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)