Database.Setup(x => x.Update(It.IsAny<Subscription>()))
.Callback<object>(sub => SavedSubscription = sub as Subscription);
Cette ligne fonctionne avec PetaPoco. A cause des exigences du projet, j'ai dû passer à Dapper (et aussi ajouter DapperExtensions pour avoir les méthodes CRUD) alors je reçois maintenant cette erreur:
Un arbre d'expression ne peut pas contenir d'appel ou d'invocation utilisant des arguments facultatifs
Des idées pour gérer cela?
Vous ne pouvez pas utiliser Moq pour se moquer des méthodes qui ont des paramètres facultatifs (comme Update
à Update
fait ). Consultez cette question pour plus de détails, même si vous êtes bloqué en spécifiant tous les paramètres de la méthode Update
.
Notez que ceci est une limitation inhérente au framework et non Moq; vous ne pouvez pas transmettre une méthode avec un paramètre par défaut à une Expression
. Jon Skeet montre bien pourquoi ici .