2010-04-21 4 views
1

Je cherche à sauter une certaine déclaration dans mes tests unitaires, par exemple:Attribute pour sauter sur déclaration test unitaire C#

if (MessageBox.Show("Are you sure you want to remove " + contact.CompanyName + " from the contacts?", "Confirm Delete", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) == MessageBoxResult.Yes) 

est là un attribut que je peux placer au-dessus de la déclaration pour éviter le test de l'unité de l'exécuter ?

+0

Quelle structure de test unitaire utilisez-vous? – Oded

+0

Utilisez-vous le framework NUnit? – KhanS

+0

Je viens de créer un nouveau projet de test à partir de Visual Studio 2010, pas sûr que le cadre –

Répondre

4

Vous devriez essayer d'éviter d'appeler directement des composants graphiques dans les classes que vous testez. Une façon de contourner ce serait de créer une interface, par exemple IMessageBoxDisplayService, qui peut être écrasa pour le test

public MyClass(IMessageBoxDisplayService messageBoxDisplayService) 
{ 
    ... 
    if (messageBoxDisplayService.Show(message)) ... 
+0

Ok sonne comme la meilleure voie à suivre, mais y at-il un attribut qui sautera une déclaration dans l'interface - indépendamment de la déclaration? –

+0

Vous pouvez utiliser l'attribut Conditionnel pour ignorer une méthode. –

3

Vous pouvez également essayer d'utiliser Moles pour bouchonner l'appel à MessageBox.Show().