テストのために Go で定数を再定義する
問題の概要:
Go では、定数は不変の値を提供します。宣言後の変更はできません。ただし、これらの定数に依存するコードをテストする場合、テスト目的でさまざまな値を挿入するのは困難になります。
提案された解決策:
潜在的な解決策は、コードをリファクタリングして含めることにあります。ベース URL をパラメータとして受け取り、引数として定数値を使用して元の関数を呼び出す 2 番目の関数。
実装の詳細:
ヘルパー関数を導入します:
定数baseUrl_を、引数としてベース URL を受け入れる関数に置き換えます:
<code class="go">func myFuncImpl(baseUrl string) string { // Use `baseUrl` in the function }</code>
元の関数を変更します:
元の関数 (MyFunc()) にヘルパー関数を呼び出します:
<code class="go">func MyFunc() string { return myFuncImpl(baseUrl_) }</code>
定数を保持します:
利点:
例:
<code class="go">const baseUrl_ = "http://google.com" func MyFunc() string { return myFuncImpl(baseUrl_) }</code>
テスト コードでは、myFuncImpl() を直接呼び出して、カスタム値を割り当てることができます。 BaseUrl:
<code class="go">func TestMyFunc(t *testing.T) { result := myFuncImpl("http://example.org") // Assertions and tests }</code>
以上が定数に依存する Go 関数をテストするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。