2009-06-06 2 views
9

Je dois avoir une méthode d'installation et de démontage pour certains tests Rails qui sont de classe ou de système, mais j'ai seulement trouvé un moyen de définir une installation/démontage régulier qui fonctionne sur un niveau par test.Existe-t-il une classe setup_class/teardown_class pour les tests Rails?

Par exemple:

class ActiveSupport::TestCase 
    setup do 
    puts "Setting up" 
    end 

    teardown do 
    puts "tearing down" 
    end 
end 

exécutera les sorties pour chaque test, mais je voudrais quelque chose comme:

class ActiveSupport::TestCase 
    setup_fixture do 
    puts "Setting up" 
    end 

    teardown_fixture do 
    puts "tearing down" 
    end 
end 

qui exécuterait l'appareil configuration _avant toutes les méthodes d'essai , puis exécutez le démontage _ fixture après toutes les méthodes de test.

Y a-t-il un tel mécanisme? Si ce n'est pas le cas, y a-t-il un moyen facile de réparer ce mécanisme?

Répondre

4

Il y a plusieurs tests populaires cadres qui s'appuient sur Test::Unit et fournissent ce comportement:

RSpec

describe "A Widget" do 
    before(:all) do 
    # stuff that gets run once at startup 
    end 
    before(:each) do 
    # stuff that gets run before each test 
    end 
    after(:each) do 
    # stuff that gets run after each test 
    end 
    after(:all) do 
    # stuff that gets run once at teardown 
    end 
end 

Test/Spec

context "A Widget" do 
    # same syntax as RSpec for before(:all), before(:each), &c. 
end 
-1

Je pense que les rails offrent une telle fonctionnalité pour les appareils. Vous pouvez utiliser des appareils en disant

 
    fixtures :users 

dans vos fichiers de test

et en plus, vous pouvez également utiliser

 
def setup 
    #.... 
end 

dans vos fichiers de test ainsi,

Questions connexes