11 Stimmen

Gibt es eine setup_class/teardown_class für Rails-Tests?

Ich brauche eine Setup und Teardown-Methode für einige Rails-Tests, die Klasse oder System breit ist, aber ich habe nur einen Weg gefunden, um eine regelmäßige Setup/Teardown zu definieren, die auf eine pro Test-Ebene funktioniert.

Zum Beispiel:

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

  teardown do
    puts "tearing down"
  end
end

führt die Ausgaben für jeden Testfall aus, aber ich hätte gerne etwas wie:

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

  teardown_fixture do
    puts "tearing down"
  end
end

die das Setup ausführen würde _ Vorrichtung vor alle Testmethoden, und führen Sie dann den Teardown _ Vorrichtung nach alle Prüfverfahren.

Gibt es einen solchen Mechanismus? Wenn nicht, gibt es eine einfache Möglichkeit, diesen Mechanismus mit einem Patch einzubauen?

4voto

James A. Rosen Punkte 62226

Es gibt mehrere beliebte Test-Frameworks, die auf Test::Unit und bieten dieses Verhalten:

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

-1voto

Rishav Rastogi Punkte 15487

Ich denke, Rails bietet eine solche Funktionalität für Fixtures. Sie können Fixtures verwenden, indem Sie sagen

  fixtures :users

in Ihren Testdateien

und außerdem können Sie auch

def setup
  #....
end

auch in Ihren Testdateien,

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X