2010-05-20 5 views
2

Une idée de la façon dont nous pouvons affirmer un objet fantaisie a été appelée lors de son accès à Parallel.ForEach via une fermeture? Je suppose que parce que chaque invocation est sur un thread différent que Rhino Mocks perd la trace de l'objet?Mock Assertions sur des objets à l'intérieur de Parallel ForEach's?

pseudocode:

var someStub = MockRepository.GenerateStub() 

Parallel.Foreach(collectionOfInts, anInt => someStub.DoSomething(anInt)) 

someStub.AssertWasCalled(s => s.DoSomething, Repeat.Five.Times) 

Ce test renvoie une violation d'attente, attendant le talon d'être appelé 5 fois, mais étant en fait appelé 0 fois.

Des idées sur la façon dont nous pouvons dire aux lambdas de garder une trace de l'objet de dérivation locale?

Répondre

1

Ok ainsi que d'une mesure temporaire, nous venons de l'appel à résumé analytique des Parallel.ForEach loin dans une autre classe ...

+0

D'une certaine manière, je suppose que c'est la bonne réponse, sinon nous sommes juste des tests unitaires la bibliothèque des tâches parallèles, non? – mwjackson