Middle
Qu'est-ce qu'un objet mock (factice) dans les tests ?
sobes.tech IA
Réponse de l'IA
Un objet factice (mock) dans les tests est un objet spécial qui imite le comportement d’un composant ou module réel du système. Il est utilisé pour isoler le code testé des dépendances externes, afin de vérifier la logique sans l’influence de services ou ressources réels.
Par exemple, si vous avez une fonction qui accède à une base de données, dans les tests, au lieu d’une connexion réelle, vous pouvez utiliser un objet mock qui renverra des données prédéfinies. Cela accélère les tests et les rend plus fiables.
Exemple en Go utilisant une interface et un mock :
// Interface pour travailler avec la base de données
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Implémentation mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test User"}, nil
}
// Dans le test
func TestGetUserName(t *testing.T) {
repo := &MockUserRepo{}
user, err := repo.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("expected Test User, got %s", user.Name)
}
}
Ainsi, les objets mock aident à créer un environnement contrôlé pour les tests et à détecter les erreurs dans la logique sans dépendre de systèmes externes.