Je suis unité test code qui interactes avec un référentiel, qui prend une expression (Expression<Func<Entity, bool>>
) pour filtrer les résultats, comme ceci:Test d'unité avec des expressions?
int orderId = 10;
_respository.GetFiltered(order => order.Id == orderId);
J'ai un problème unité d'essai, plus la mise spécifiquement des attentes une expression correspondra. Lors d'un test de l'unité que je veux faire ceci:
_mockRespository.Setup(r => r.GetFiltered(order => order.Id == 10)).Returns(new Order[0]).AtMostOnce();
J'ai trouvé une solution qui a suggéré de faire .ToString()
chaque expression et compairing que, toutefois, lorsque vous faites référence à une variable telle que orderId, l'expression est complètement différent!
Que font les gens pour tester cela?
Merci,
David
Je ne suis pas sûr de comprendre ... au lieu de passer des expressions à la méthode d'installation. Que faire si vous le mettez en cache dans une variable locale et que vous le transmettez à la méthode d'installation. – Gishu
Si vous faites cela, alors la même question demeure! Comment puis-je comparer que deux expressions sont les mêmes? –