Testez le comportement à travers la même surface que l'utilisateur : rendez le composant, interrogez par rôle et nom accessible, interagissez, et vérifiez ce qui apparaît. Couvrez la logique qui peut vraiment casser, comme le rendu conditionnel, les états d'erreur et vides, et les hooks personnalisés. Ne testez pas les détails d'implémentation comme l'état interne, le passage de props ou le fait qu'un composant enfant a été appelé ; ces tests cassent à chaque refactorisation et n'attrapent rien.
Pourquoi les recruteurs posent cette question
Le recruteur cherche une philosophie de test plutôt qu'une liste d'outils. Il veut entendre le principe du comportement plutôt que de l'implémentation, des frontières sensées entre unitaire, intégration et bout en bout, et une opinion sur le mocking, puisque des tests trop mockés passent pendant que la production casse. Nommer ce que vous ignorez est souvent plus instructif que nommer ce que vous couvrez, parce que ça montre que vous avez maintenu une suite dans la durée.
Comment structurer votre réponse
- Énoncez le principe : tester ce que l'utilisateur peut observer.
- Décrivez brièvement votre style de requête et d'interaction.
- Dites où vous placez la limite du mocking, surtout pour le réseau.
- Nommez ce que vous ignorez et pourquoi ces tests sont un passif.
Exemple de réponse
Ma règle, c'est qu'un test ne doit échouer que quand le comportement visible par l'utilisateur change. Donc je rends le composant avec Testing Library, j'interroge par rôle et nom accessible, je clique et je tape comme le ferait une personne, et je vérifie ce qui est à l'écran. Ça a un effet de bord agréable : si je n'arrive pas à l'interroger par rôle, le markup a en général un problème d'accessibilité. Pour le réseau, j'intercepte au niveau HTTP plutôt que de mocker ma propre couche de données, parce que mocker mon propre module revient à tester mon mock. L'essentiel de la valeur vient de la couche intermédiaire : une fonctionnalité entière rendue avec ses vrais enfants et un faux serveur, plutôt qu'un test par composant. Ce que je ne teste pas, c'est l'état interne, le fait qu'un utilitaire a été appelé, les fichiers de snapshot d'un arbre entier, ou le style. Tout ça casse sur des refactorisations inoffensives et passe pendant que quelque chose est réellement cassé. Ensuite un petit nombre de tests bout en bout couvre les parcours que l'entreprise ne peut pas se permettre de casser, comme l'inscription et le paiement, et c'est tout.
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 testez-vous un hook personnalisé isolément ?
- Où placez-vous la limite entre un test d'intégration et un test bout en bout ?
- Comment traiteriez-vous un test instable qui dépend du timing ?
Autres questions pour Développeur React
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