ホームページ >バックエンド開発 >Golang >テスト用の golang インターフェイス

テスト用の golang インターフェイス

PHPz
PHPz転載
2024-02-09 09:57:15379ブラウズ

用于测试的 golang 接口

php エディタ Strawberry では、テスト用の Golang インターフェイスを紹介します。ソフトウェア開発プロセスにおいてテストは欠かせないものであり、このインターフェースは便利なテスト機能を提供します。このインターフェイスを通じて、開発者はコードの正確性と安定性を迅速に確認し、開発効率を向上させることができます。機能テスト、パフォーマンス テスト、インターフェイスのストレス テストのいずれであっても、このツールはお客様のニーズを満たすことができます。さらに、このインターフェイスではテスト結果が簡潔かつ直感的に表示されるため、開発者はコードの実行ステータスをより直感的に理解できます。初心者でも経験豊富な開発者でも、この golang インターフェイスは開発作業に利便性と利点をもたらします。

質問の内容

コードでデータベース シミュレーションを作成しようとしています。次に、シミュレーションを作成するためのインターフェイスをコードに導入します。

これは私のコードです(これが正しい方法かどうかはわかりません)

リーリー

私のインターフェース実装は次のとおりです:

リーリー

次に、メソッドから findsomethingindatabase の実装を呼び出す必要があり、オブジェクト型インターフェイスを受け取ります。 リーリー

しかし、今は

callimplementation

` を呼び出して実装付きのオブジェクトを渡す方法がわかりません。 インターフェイス実装を渡すメソッドを呼び出します

Solution

インターフェイスの説明

Type

findsomethingindatabase 実装はレシーバーのない単なる関数であるため、インターフェイス objectapi を実装する型はありません。 タイプ

func(ctx context.context, name string) (e.response, error)

の値をコールバックとして callimplementation に渡し、インターフェイスを取り除くことができます。完全に 。あるいは、インターフェイスを保持し、型を定義し、その型を現在の findsomethingindatabase 実装のレシーバーにします。その後、objectapi インターフェイスが実装されるため、その型を callimplementation に渡すことができます。後者の例 (スケーラビリティの点で私が好むオプションです): リーリー この場合、

db

をグローバル変数にするのではなく (現在はそうなっているようです)、database のメンバーとして保存することをお勧めします。

以上がテスト用の golang インターフェイスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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