Méthodes privées dans les tests unitaires C# : erreurs d'exécution et solutions
La capacité de Visual Studio à tester unitairement des méthodes privées via des classes d'accesseurs générées automatiquement peut sembler pratique. Cependant, dans certains cas, ces tests peuvent rencontrer des erreurs d'exécution, comme le montre l'exemple de code fourni. Le problème vient d'une différence entre le type déduit par le compilateur (TypeA_Accessor) et le type d'exécution réel (TypeA), entraînant une erreur de conversion lors de l'ajout d'éléments à la liste.
Pour résoudre ce problème, considérez les points suivants :
-
Utilisation de PrivateObject (disponible avant .NET Core 2.0) : La classe PrivateObject permet d'accéder aux membres privés d'un objet, y compris les méthodes. Il peut être utilisé comme l'exemple fourni dans la réponse à la question. Toutefois, veuillez noter que la prise en charge de PrivateObject a été supprimée dans .NET Core 2.0.
Vous pouvez également prendre en compte les conseils généraux suivants :
-
Évitez de tester des méthodes privées : Tester des méthodes privées peut conduire à des tests fragiles qui peuvent échouer lorsque les détails d'implémentation internes changent. Concentrez-vous plutôt sur le test de l’interface publique de votre classe.
-
Évitez de manipuler l'état de l'objet dans les tests unitaires : Les tests unitaires doivent généralement vérifier un comportement spécifique sans changer l'état de l'objet testé. Cela garantit que les tests ultérieurs ne seront pas affectés par les résultats des tests précédents.
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!