J'ai une méthode sur une interface qui ressemble à ceci et je veux le bouchonner avec Rhino Mocks:Rhino Mocks: Puis-je utiliser Stub() lorsque l'un de mes paramètres est Expression <Func<T1, T2>>?
TValue GetPropertyOfExistingObject<TValue>(long id, Expression<Func<T, TValue>> propertyExpression);
Mon code qui fait le stubbing ressemble à ceci:
var service = MockRepository.GenerateStub<IQuoteService>();
service.Stub(s => s.GetPropertyOfExistingObject(1, q => q.QuoteNumber)).Return(1234);
Notez que l'un des paramètres de cette méthode est un Expression<Func<T1, T2>>
, et ce stub ne renvoie pas la valeur spécifiée. Je sais que je peux le faire en utilisant WhenCalled() mais je me demandais si Stub() devrait fonctionner avec des paramètres d'expression ou si je fais juste quelque chose de mal.
Cela ne fonctionne actuellement que pour les méthodes de l'expression, pas les propriétés. Vous devez ajouter une propriété correspondant à Expression Matcher. En outre, si la méthode a des arguments, vous devrez également les comparer. – Tim
Point important! Toujours juste - bien travaillé pour les méthodes. – Jan