Isolez la frontière. Placez l'appel HTTP derrière un client léger, puis dans les tests remplacez-le par un faux objet ou patchez-le là où il est utilisé, pas là où il est défini. Utilisez les fixtures pytest pour la préparation et parametrize pour les cas succès, échec et timeout. Ajoutez un petit ensemble de tests de contrat contre le vrai bac à sable pour que les mocks ne dérivent pas.
Pourquoi les recruteurs posent cette question
Les recruteurs s'en servent pour voir comment vous pensez les frontières de test et la conception. Quiconque patche des internes profonds vous dit que son code n'offre aucune couture. Ils guettent aussi l'aisance avec pytest, c'est-à-dire fixtures, parametrize et monkeypatch, et la conscience que les mocks figent des hypothèses qui pourrissent, donc quelque chose doit vérifier le vrai contrat de temps en temps.
Comment structurer votre réponse
- Concevez une couture avant de parler de mocks.
- Expliquez le patch au point d'utilisation.
- Couvrez les chemins d'échec avec parametrize.
- Protégez-vous de la dérive des mocks avec des tests de contrat.
Exemple de réponse
La testabilité est d'abord une question de conception. Si l'appel de paiement est enfoui dans la logique métier, je l'extrais dans une classe client avec deux ou trois méthodes, et la logique prend ensuite ce client en argument. À partir de là, la plupart des tests n'ont besoin d'aucune bibliothèque de mocks, parce que je passe un petit faux client qui renvoie des réponses préparées, plus lisible qu'un empilement de décorateurs patch. Là où je patche vraiment, je patche le nom dans le module testé, pas dans le module de la bibliothèque, parce que patcher là où c'est défini ne fait rien une fois que le nom a été importé ailleurs. Les fixtures construisent les objets, et parametrize couvre les cas intéressants : accepté, refusé, timeout, et une charge utile malformée, puisque ce sont les branches d'échec qui cassent en production. Je garde aussi une poignée de tests contre le bac à sable du fournisseur, marqués pour tourner la nuit plutôt qu'à chaque commit. Cela a attrapé un changement où le fournisseur s'est mis à renvoyer un code d'erreur que nous n'avions jamais mocké.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment évitez-vous les tests qui assertent sur les internes des mocks ?
- Quand un faux objet vaut-il mieux qu'un MagicMock ?
- Comment testeriez-vous le comportement de retry et de backoff ?
Autres questions pour Développeur Python
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions