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

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

在 Go 中測(cè)試負(fù)面場(chǎng)景的方法

在 Go 中測(cè)試負(fù)面場(chǎng)景的方法

Go
梵蒂岡之花 2023-03-29 16:04:43
我想知道在使用外部系統(tǒng)(例如數(shù)據(jù)庫(kù))時(shí)是否有一種公認(rèn)的/慣用的方法來(lái)測(cè)試意外行為。這些主要是“if err != nil {...}”中的情況,通常錯(cuò)誤不會(huì)發(fā)生并且您不通過(guò)輸入控制它。一種“正確”的方法可能是定義一個(gè)接口和一個(gè)模擬結(jié)構(gòu),當(dāng)您需要它時(shí)會(huì)返回錯(cuò)誤。但是,如果我已經(jīng)有大量不適用于接口的代碼,那么僅僅為了測(cè)試幾個(gè)場(chǎng)景而引入它們似乎很煩人。那么有人知道并使用不同的方法嗎?例如,在 php 和 js 等動(dòng)態(tài)語(yǔ)言中,可以使用模擬庫(kù)甚至手動(dòng)覆蓋函數(shù)/方法行為,這在編寫測(cè)試時(shí)非常有用。
查看完整描述

1 回答

?
守著星空守著你

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

使用接口和自定義/模擬實(shí)現(xiàn)進(jìn)行測(cè)試做到這一點(diǎn)的方法。如果您想測(cè)試大部分代碼,現(xiàn)在就值得進(jìn)行切換。如果您不想只測(cè)試大部分代碼的一小部分,那么為測(cè)試煩惱又有什么意義呢?他們不會(huì)向您保證任何事情,相反,他們會(huì)給您一種“一切”都很好的錯(cuò)覺(jué)。

如果您不想使用和模擬接口,另一種方法是模擬數(shù)據(jù)庫(kù)服務(wù)器本身,但讓我們面對(duì)現(xiàn)實(shí)吧,這會(huì)更麻煩。

只需使用接口。重構(gòu)永遠(yuǎn)不會(huì)太晚。從長(zhǎng)遠(yuǎn)來(lái)看,這總是值得做的事情。

另請(qǐng)注意,您可以逐漸進(jìn)行此“切換”。只需創(chuàng)建一個(gè)接口,其中包含您要測(cè)試的代碼所使用的功能。您無(wú)需“觸摸”其余代碼。更改可測(cè)試代碼以使用該接口,然后您可以在測(cè)試中模擬該接口。這在 Go 中很容易。


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

添加回答

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