Quel est le meilleur moyen de test de l'unité à partir de plusieurs threads?
ce genre de suite à un autre question de la mine.
Fondamentalement, une fois que j'ai le code d'accès du fichier (examinera les réponses dans une minute) quelle serait la meilleure façon de test?
Je pense à la création d'une méthode qui vient engendre beaucoup de BackgroundWorker'ou quelque chose et leur raconte tout de charger ou d'enregistrer le fichier, et de tester avec des variables fichier/objet tailles. Puis, obtenez une réponse en retour du fils pour voir si il échec/succès/le monde imploser etc.
Pouvez vous les gars, vous offrent des suggestions sur la meilleure façon d'aborder cette question? Comme je l'ai dit avant, c'est un peu nouveau pour moi 🙂
Modifier
Suivantes ajmastrean de l' post:
Je suis l'aide d'une application de console pour le test de Débogage.Affirme 🙂
Mise à jour
J'ai d'abord roulé avec l'aide de BackgroundWorker de traiter avec le filetage (depuis que je suis habitué à partir de Windows dev), j'ai vite réalisé que lorsque j'étais à l'exécution de tests où plusieurs ops (threads) nécessaires pour la terminer avant de continuer, j'ai réalisé que ça allait être un peu un hack pour obtenir pour ce faire.
J'ai ensuite suivi sur ajmastrean'post et j'ai réalisé que je devrais vraiment être à l'aide de la Fil classe pour travailler avec les opérations simultanées. Je vais maintenant refactoriser à l'aide de cette méthode (bien qu'une approche différente).
OriginalL'auteur Rob Cooper | 2008-09-03
Vous devez vous connecter pour publier un commentaire.
.NET,
ThreadPool
fils ne reviendra pas sans mettre en place deManualResetEvent
s ouAutoResetEvent
s. Je trouve ces overkill pour un test rapide de la méthode (pour ne pas mentionner un peu compliqués pour créer, configurer et gérer). Fond travailleur est aussi un peu complexe avec les rappels et ces.Quelque chose que j'ai trouvé qui fonctionne est
ThreadStart
méthode de chaque thread.OriginalL'auteur Anthony Mastrean
@ajmastrean, depuis l'unité de résultat du test doit être prévisible, nous avons besoin de synchroniser les threads en quelque sorte. Je ne peux pas voir un moyen simple de le faire sans l'aide d'événements.
J'ai trouvé que le pool de threads.QueueUserWorkItem me donne un moyen facile de tester ces cas d'utilisation
OriginalL'auteur aku
Votre idée devrait fonctionner correctement. Fondamentalement, vous voulez juste pour frayer un tas de fils, et assurez-vous que ceux de l'écriture du fichier de prendre assez longtemps pour le faire de le faire réellement les lecteurs attendre. Si tous les threads de retour sans erreur et sans bloquer à jamais, alors que le test réussisse.
OriginalL'auteur Eric Z Beard