Sobes.tech
Junior — Middle

Quel est le rôle principal et l'utilisation des objets Mock dans le processus de test ?

sobes.tech IA

Réponse de l'IA

Les objets mock sont utilisés dans les tests pour simuler le comportement des composants réels du système avec lesquels le module testé interagit. Le rôle principal du mock est d'isoler le code testé des dépendances externes (par exemple, bases de données, services réseau) afin que les tests soient rapides, fiables et reproductibles.

L'utilisation d'objets mock permet :

  • de vérifier les interactions avec les dépendances (par exemple, appels de méthodes, paramètres passés).
  • de simuler différents scénarios de fonctionnement des dépendances (succès, erreurs, retards).
  • de simplifier la configuration de l'environnement de test.

Exemple en Go utilisant des interfaces et des mocks pour tester une fonction qui appelle un service externe :

package service

type ExternalAPI interface {
    GetData(id string) (string, error)
}

func ProcessData(api ExternalAPI, id string) (string, error) {
    data, err := api.GetData(id)
    if err != nil {
        return "", err
    }
    return "Processed: " + data, nil
}

// Dans le test, on crée un mock :

type MockAPI struct {}

func (m *MockAPI) GetData(id string) (string, error) {
    if id == "123" {
        return "mocked data", nil
    }
    return "", fmt.Errorf("not found")
}

// Test
func TestProcessData(t *testing.T) {
    mock := &MockAPI{}
    result, err := ProcessData(mock, "123")
    if err != nil || result != "Processed: mocked data" {
        t.Errorf("résultat inattendu : %v, erreur : %v", result, err)
    }
}