2010-06-13 5 views
1

J'ai 2 questions sur la fonctionnalité de nunit.2 questions sur nUnit

Quelle est la différence entre les attributs [TestFixtureSetUp] et [SetUp]?

J'écris une classe avec des tests et je vois que la moitié de mes fonctions de test ont besoin d'une configuration, Et une autre moitié a besoin d'une autre configuration. Comment puis-je avoir dans une classe deux petites fonctions SetUp différentes appelées avec des fonctions différentes

Merci.

Répondre

7

Méthode marquée [TestFixtureSetUp] attribut sera exécuté une fois avant tous les tests dans la suite de tests en cours et méthode marquée avec [SetUp] attribut sera exécuté avant chaque test.

Comme pour la classe avec des tests qui contient des tests exigeant différentes fonctions de configuration. Il suffit de diviser cette classe en deux - chacun avec sa propre fonction SetUp.

[TestFixture] 
    public void TestSuite1 
    { 
     [SetUp] 
     public void SetUp1() 
     { 
     ... 
     } 

     [Test] 
     public void Test1() 
     { 
     ... 
     } 
    } 

    [TestFixture] 
    public void TestSuite2 
    { 
     [SetUp] 
     public void SetUp2() 
     { 
     ... 
     } 

     [Test] 
     public void Test2() 
     { 
     ... 
     } 
    } 

ou la fonction d'établissement d'appel explicite

[TestFixture] 
    public void TestSuite 
    { 

     public void SetUp1() 
     { 
     ... 
     } 

     public void SetUp2() 
     { 
     ... 
     } 

     [Test] 
     public void Test1() 
     { 
     SetUp1(); 

     ... 
     } 

     [Test] 
     public void Test2() 
     { 
     SetUp2(); 

     ... 
     } 
    } 
1

Procédé TestFixtureSetup est exécutée une fois avant de l'une des méthodes de test sont exécutées. Une méthode de configuration est exécutée avant l'exécution de chaque méthode de test dans le banc de test.

Comment puis-je avoir dans une classe deux petites fonctions de configuration différentes qui sont appelé avec des fonctions différentes

Vous ne pouvez pas avoir deux fonctions de configuration différentes dans une seule classe marquée comme TestFixture. Si des tests individuels nécessitent une initialisation, il est logique de placer le code d'initialisation dans ces fonctions eux-mêmes.

Je vois que la moitié de mes fonctions de test besoin d'une configuration

Je pense que vous devez prendre en compte les tests ...