2009-06-06 5 views
9

Ich brauche eine Setup- und Teardown-Methode für einige Rails-Tests, die klassen- oder systemweit ist, aber ich habe nur eine Möglichkeit gefunden, ein reguläres Setup/Teardown zu definieren, das pro Testlevel funktioniert.Gibt es eine setup_class/teardown_class für Rails-Tests?

Zum Beispiel:

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

    teardown do 
    puts "tearing down" 
    end 
end 

werden die Ausgänge für jeden Testfall ausführen, aber ich möchte so etwas wie:

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

    teardown_fixture do 
    puts "tearing down" 
    end 
end 

, die die Einrichtung _ Befestigung vor alle Testmethoden ausführen würde und dann Teardown _ Vorrichtung nach alle Testmethoden ausführen.

Gibt es einen solchen Mechanismus? Wenn nicht, gibt es einen einfachen Weg, diesen Mechanismus zu verpatzen?

Antwort

4

Es gibt mehrere populären Test verwenden kann Frameworks, die auf Test::Unit aufbauen und dieses Verhalten bereitstellen:

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

Ich denke, Schienen bietet eine solche Funktionalität für Leuchten. Sie können Vorrichtungen verwenden, indem

 
    fixtures :users 

in Ihren Testdateien

sagen, und außerdem kann man auch

 
def setup 
    #.... 
end 

in Ihren Testdateien als auch,

Verwandte Themen