2009-06-06 4 views
9

Ho bisogno di avere una messa a punto e il metodo teardown per alcuni test Rails che è classe o livello di sistema, ma ho trovato solo un modo per definire un normale setup/teardown che funziona su una base per livello di test.C'è un setup_class/teardown_class per i test di Rails?

Ad esempio:

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

    teardown do 
    puts "tearing down" 
    end 
end 

eseguirà le uscite per ogni test, ma vorrei qualcosa di simile:

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

    teardown_fixture do 
    puts "tearing down" 
    end 
end 

che eseguire l'apparecchio configurazione _prima tutti i metodi di prova , quindi eseguire l'apparecchio _ teardown dopo tutti i metodi di prova.

Esiste un tale meccanismo? In caso contrario, c'è un modo semplice per eseguire il patch di scimmia su questo meccanismo?

risposta

4

ci sono diversi test popolare framework che si basano su Test::Unit e forniscono questo comportamento:

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

Penso rotaie fornisce una tale funzionalità per gli apparecchi. È possibile utilizzare apparecchi dicendo

 
    fixtures :users 

nei file di test

e inoltre è anche possibile utilizzare

 
def setup 
    #.... 
end 

nei file di test così,