Go テスト ケースでの構造体のメソッド呼び出しのモック
Go では、構造体のメソッド呼び出しのモックに対するネイティブ サポートはありません。ただし、同様の機能を実現するためにいくつかの手法を使用できます。
1 つのアプローチは、構造体の関連メソッドを表すインターフェイスを定義し、そのインターフェイスのモック実装を作成することです。このモック実装は、実際の構造体の代わりにテスト ケースに挿入できます。
次のコード サンプルを検討してください。
type A struct {} func (a *A) perform(url string){ // ... }
これを使用する invoke() 関数をテストするには、 () メソッドを使用すると、A 構造体のモック実装を作成できます。
type AMock struct { PerformFunc func(url string) } func (m *AMock) perform(url string) { if m.PerformFunc != nil { m.PerformFunc(url) } }
テスト ケースでは、モックは次のようになります。 invoke() 関数に注入されます:
func TestInvoke(t *testing.T) { mock := &AMock{} mock.PerformFunc = func(url string) { // Test logic for mock behavior } invoke(mock, "example.com") }
モックに PerformFunc フィールドを設定すると、モック化されたメソッドの動作を制御し、テストでアサートできます。
別のアプローチモッキングには、モッキングをサポートする依存関係注入フレームワークの使用が含まれます。これにより、より柔軟で汎用性の高いモック機能が可能になりますが、追加の構成とセットアップが必要です。
最終的に、モックに最適な方法は、開発中のテスト ケースとアプリケーションの特定の要件と制約によって異なります。
以上がGo テストケースで Struct メソッド呼び出しをモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。