ホームページ >バックエンド開発 >Golang >Golang シミュレーションにより関数定義が強制的に変更される

Golang シミュレーションにより関数定義が強制的に変更される

WBOY
WBOY転載
2024-02-12 12:33:081249ブラウズ

Golang シミュレーションにより関数定義が強制的に変更される

php エディタ Xiaoxin は今日、Golang による関数定義の強制変更シミュレーションを紹介します。 Golang は、強力な型システムを備えた効率的で簡潔なプログラミング言語です。ただし、場合によっては、特定のニーズを満たすために既存の関数の定義を変更する必要がある場合があります。この記事では、Golang で関数定義を強制的に変更する方法をシミュレーションする方法を紹介しますので、一緒に検討してみましょう。

質問内容

次の機能があります:

リーリー

この関数を単体テストするために、次のようにリファクタリングする必要がありました。

リーリー

私のテストは次のようになります:

リーリー

これが go でテストする唯一の方法ですか?関数に挿入されていない API をモックする方法はありませんか?

解決策

http テストに go を使用する慣用的な方法は、http/httptest (Example)

を使用することです。

あなたの場合、必要なのはベース URL を挿入可能にすることだけです:

リーリー

その後、各テストで:

リーリー

より良い設計は、API をクライアント struct でラップし、getprice をレシーバー メソッドにすることです。 リーリー リーリー

今後の参考のために、

gomock も参照してください。遭遇する他のほとんどのモック問題には、この言語に対する解決策が組み込まれていないためです。

以上がGolang シミュレーションにより関数定義が強制的に変更されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。