J'ai une méthode qui est légèrement compliquée et qui doit être très bien testée. Substance de sauce secrète. Ok, peut-être pas si cool, mais je ne suis pas sûr à 100% comment faire pour configurer ces choses. Ce genre de provient de ma question précédente here. Je n'ai pas utilisé de rhinocéros alors je suis toujours mauvais/inconscient de la syntaxe, alors n'hésitez pas à faire une tonne de suggestions.Se moquer d'une méthode et retourner des résultats différents
Public Function GenerateAllNotifications(ByVal days As List(Of Integer)) As List(Of MailMessage) Implements INotificationService.GenerateAllNotifications
Dim someStuff = _someService.GetThingsThatExpireBetween(day1, day2)
'build some messages
Return messages
End Function
Ma configuration dans mes tests sont à la recherche comme ça ... Je sais que cela est faux si
Dim fakeStuff = New SomeItem()
Dim fakeContext = New List(Of Provider)
fakeContext.Add(fakeStuff)
Dim someService = MockRepository.GenerateStub(Of ISomeService)()
someService.Stub(Function(x) x.GetThingsThatExpireBetween(30, 60)).IgnoreArguments().Return(fakeContext.AsQueryable)
_fakeNotificationService = New NotificationService(someService)
Ce que je veux accomplir est un retour sur les articles execpted de ce service. La règle métier est une collection de messages basée sur cette expiration donnée. Donc, si une entité expire dans 30 jours, le message reflète cela, si c'est 60, 90, peu importe, ceux-ci sont mis dans les messages. Je pense que mon problème est que j'ai besoin d'avoir des objets différents à chaque fois ...?
Pourriez-vous clarifier ce que vous essayez de réaliser? Et peut-être coller au moins un aperçu du code traitant des messages? – Grzenio
Le message est le résultat final, il n'est donc pas aussi important d'obtenir les données pour les construire correctement (c'est une méthode de filtrage). Faire le message est stupide facile mais obtenir les bonnes choses à faire ce n'est pas. J'ai besoin de différents objets pour revenir à chaque GetThings car ils seront filtrés (ce qui est attendu) ... Je commence à me demander si je dois retourner chacun individuellement par l'entrée (30,60 et ainsi de suite) – jeriley
Quand vous stub/mock une méthode que vous spécifiez les arguments pour lesquels vous renvoyez la valeur spécifiée. Tu ne peux pas juste définir quelques stubs? Vous avez vraiment besoin de coller du code simplifié si vous voulez que quelqu'un vous aide. – Grzenio