Существует ли setup_class / teardown_class для тестов Rails? - PullRequest
10 голосов
/ 06 июня 2009

Мне нужен метод настройки и разрыва для некоторых тестов Rails, который предназначен для класса или всей системы, но я нашел только способ определить регулярную настройку / разборку, которая работает на уровне тестирования.

Например:

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

  teardown do
    puts "tearing down"
  end
end

выполнит выходные данные для каждого теста, но я бы хотел что-то вроде:

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

  teardown_fixture do
    puts "tearing down"
  end
end

, который будет выполнять настройку _ fixture до всех методов тестирования, а затем выполнять разрыв _ fixture после всех методов тестирования.

Есть ли такой механизм? Если нет, то есть ли простой способ обезопасить этот механизм?

Ответы [ 2 ]

4 голосов
/ 07 июня 2009

Существует несколько популярных тестовых сред, основанных на Test::Unit и обеспечивающих такое поведение:

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

Тест / Spec

context "A Widget" do
  # same syntax as RSpec for before(:all), before(:each), &c.
end
0 голосов
/ 06 июня 2009

Я думаю, что рельсы обеспечивают такую ​​функциональность для светильников. Вы можете использовать светильники, сказав

  fixtures :users

в ваших тестовых файлах

и кроме того вы также можете использовать

def setup
  #....
end

в ваших тестовых файлах,

...