亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在 Go 中測試負面場景的方法

在 Go 中測試負面場景的方法

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

1 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

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

如果您不想使用和模擬接口,另一種方法是模擬數據庫服務器本身,但讓我們面對現實吧,這會更麻煩。

只需使用接口。重構永遠不會太晚。從長遠來看,這總是值得做的事情。

另請注意,您可以逐漸進行此“切換”。只需創建一個接口,其中包含您要測試的代碼所使用的功能。您無需“觸摸”其余代碼。更改可測試代碼以使用該接口,然后您可以在測試中模擬該接口。這在 Go 中很容易。


查看完整回答
反對 回復 2023-03-29
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號