Очистка переменных экземпляра класса между примерами Rspec - PullRequest
0 голосов
/ 26 октября 2011

Я пишу спецификации для моего драгоценного камня, который расширяет ActiveRecord. Одна из вещей, которую он должен сделать, это установить переменную экземпляра класса следующим образом:

class MyModel < ActiveRecord::Base
  @foo = "asd"
end

Прямо сейчас, когда я устанавливаю @foo в одну it "should" {}, она сохраняется до следующей. Я понимаю, что это нормальное поведение Ruby, но я думал, что в RSpec есть какая-то магия, которая очищает все между спецификациями. Я хотел бы знать, как я могу повторно использовать одну модель AR для всех моих тестов (поскольку создание группы таблиц будет проблематично), при этом будучи уверенным, что @foo очищается между каждым тестом. Нужно ли делать это вручную?

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Я завершил генерацию метода в своем вспомогательном классе, который генерировал новые классы с помощью Class.new, так что я мог быть уверен, что между тестами ничего не осталось.

0 голосов
/ 27 октября 2011

Вы просто должны хорошо использовать блок after :each.

after(:each) do 
  @foo = nil
end
...