Go 中的猴子修補:不可更改程式碼庫的解決方案
使用未編程到介面且可以高度互連的程式碼庫呈現測試和基準測試的挑戰。在這種情況下,傳統的模擬技術可能不適用。然而,Go 中有一個可以幫助的策略:猴子補丁。
當面臨類似的情況時,建議的方法是建立一個自訂介面作為不可修改程式碼的包裝器。這允許您在測試中模擬特定方法,同時保持原始程式碼不變。
為了說明這一點,請考慮以下範例:
在這種情況下,Concrete 是您無法修改的程式碼。透過建立 MyInterface 介面並嵌入原始 Concrete 結構,您可以靈活地在測試中模擬其方法:
此方法提供了一種無需修改底層程式碼即可測試特定功能的方法。
或者,按照評論中的建議,您也可以直接嵌入所需的類型,而不是建立單獨的介面。這允許您有選擇地僅模擬您需要的方法:
此策略保留了直接在嵌入類型上訪問非模擬方法的能力,為測試提供了更大的靈活性。
以上是Monkey Patching 能否解決 Go 不可更改的程式碼庫測試問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!