変更できない Go コードをテスト用にモックするにはどうすればよいですか?
Dec 09, 2024 pm 05:31 PM変更不可能なコードに対する Golang Monkey パッチ適用
Go では、ランタイム オブジェクトの変更がないため、依存関係のない高度に相互接続されたコードをテストすることが困難になりますインジェクションまたはインターフェースプログラミング。この制限を回避するには、次のアプローチの使用を検討してください。
モッキング ラッパー インターフェイスの作成
元の構造体をラップする独自のインターフェイスを定義します。例:
1 2 3 4 |
|
アダプター構造体の使用
元の構造体の実装を適応させる新しい構造体にラッパー インターフェイスを実装します:
1 2 3 4 5 6 7 8 9 10 11 |
|
によるテストWrapper
インターフェイスに準拠しているため、単体テストで具象構造体をモックできるようになりました:
1 2 3 4 5 6 |
|
元の型の埋め込み
@elithrar が提案しているように、元の型を埋め込んで必要な部分だけを選択的にモックすることもできますメソッド:
1 2 3 |
|
この場合でも、モックを必要としないメソッドの元の実装にアクセスできます:
1 2 |
|
以上が変更できない Go コードをテスト用にモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?
