首頁  >  文章  >  後端開發  >  我們如何測試依賴常數的 Go 函數?

我們如何測試依賴常數的 Go 函數?

Susan Sarandon
Susan Sarandon原創
2024-11-01 14:25:29141瀏覽

How Can We Test Go Functions Dependent on Constants?

在Go 中重新定義常數用於測試

問題大綱:
在Go 中,常量提供不可變的數值,申報後不得更改。然而,當測試依賴這些常數的程式碼時,為測試目的注入不同的值變得具有挑戰性。

建議的解決方案:
潛在的解決方案在於重構程式碼以包含第二個函數將基本 URL 作為參數,並以常數值作為參數呼叫原始函數。

實現詳細信息:

  1. 引入輔助函數:

    • 將常數baseUrl_ 替換為接受基本URL 作為參數:

      <code class="go">func myFuncImpl(baseUrl string) string {
        // Use `baseUrl` in the function
      }</code>
  2. 修改原函數:

      修改原函數:
    • 具有原函數(MyFunc()) 調用助手函數:

      <code class="go">func MyFunc() string {
        return myFuncImpl(baseUrl_)
      }</code>
  3. 保留常量:

      保留常量baseUrl_作為參考點在MyFunc() 函數中,確保在生產中使用預期的常量值

好處:

    維護原有API,避免生產程式碼中潛在的漏洞。
  • 允許使用不同的值來測試 MyFunc() 函數,而無需修改常數。
  • 測試可以存取專用函數 (myFuncImpl()),該函數允許在測試期間進行靈活的值分配。

範例:

<code class="go">const baseUrl_ = "http://google.com"

func MyFunc() string {
    return myFuncImpl(baseUrl_)
}</code>
在測試程式碼中,可以直接呼叫myFuncImpl() 並為其指派自訂值基本網址:

以上是我們如何測試依賴常數的 Go 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn