Maison > développement back-end > Golang > Comment puis-je simuler des appels de méthode Struct dans des cas de test Go ?

Comment puis-je simuler des appels de méthode Struct dans des cas de test Go ?

Barbara Streisand
Libérer: 2024-12-05 07:09:17
original
895 Les gens l'ont consulté

How Can I Mock Struct Method Calls in Go Test Cases?

Appels de méthode moqueuse de structures dans les cas de test Go

Dans Go, il n'y a pas de support natif pour les appels de méthode moqueuse de structures. Cependant, plusieurs techniques peuvent être utilisées pour obtenir des fonctionnalités similaires.

Une approche consiste à définir une interface représentant les méthodes pertinentes de la structure et à créer une implémentation fictive de cette interface. Cette implémentation fictive peut ensuite être injectée dans le scénario de test à la place de la structure réelle.

Considérez l'exemple de code suivant :

type A struct {}

func (a *A) perform(url string){
    // ...
}
Copier après la connexion

Pour tester la fonction Invocation() qui utilise cette exécution (), une implémentation simulée de la structure A peut être créée :

type AMock struct {
    PerformFunc func(url string)
}

func (m *AMock) perform(url string) {
    if m.PerformFunc != nil {
        m.PerformFunc(url)
    }
}
Copier après la connexion

Dans le cas de test, la simulation peut être injectée dans la méthode Invocation(). function :

func TestInvoke(t *testing.T) {
    mock := &AMock{}
    mock.PerformFunc = func(url string) {
        // Test logic for mock behavior
    }
    invoke(mock, "example.com")
}
Copier après la connexion

En définissant le champ PerformFunc sur le mock, le comportement de la méthode simulée peut être contrôlé et affirmé dans le test.

Une autre approche du mocking consiste à utiliser une injection de dépendance cadre qui prend en charge la moquerie. Cela permet des capacités de simulation plus flexibles et polyvalentes, mais nécessite une configuration et une configuration supplémentaires.

En fin de compte, la méthode de simulation la plus appropriée dépend des exigences et des contraintes spécifiques du scénario de test et de l'application en cours de développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal