Utilisez Moq pour vous moquer des méthodes d'extension
Dans le monde des tests unitaires, la simulation joue un rôle essentiel pour isoler les dépendances et garantir la stabilité des tests. Cependant, lorsqu’il s’agit de méthodes d’extension, les techniques de simulation traditionnelles semblent insuffisantes.
Moq, un framework moqueur populaire, ne prend pas directement en charge les méthodes statiques moqueuses, qui sont la pierre angulaire des méthodes d'extension. L'erreur « Attente invalide sur un membre non remplaçable » résume bien cette limitation.
Considérons l'exemple suivant :
<code class="language-c#">public class SomeType { public int Id { get; set; } } var ListMock = new Mock<List<SomeType>>(); ListMock.Setup(l => l.FirstOrDefault(st => st.Id == 5)) .Returns(new SomeType { Id = 5 });</code>
Ce test échouera car Moq ne peut pas remplacer la méthode statique FirstOrDefault de la classe List
Quelques alternatives ont été proposées :
Cependant, ces méthodes introduisent une complexité supplémentaire et peuvent s'avérer peu pratiques dans certains cas. Par conséquent, assurez-vous de considérer l’adéquation des méthodes d’extension simulées dans votre stratégie de test.
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!