Я пишу спецификации для плагина, который имеет разные модули, которые пользователь может выбрать для загрузки.Некоторые из этих модулей динамически добавляют before_filters к ApplicationController.
Проблема иногда в том, что если спецификация для модуля X запускается и добавляет before_filter, то спецификация для модуля Y, которая запускается позже, завершится неудачей.Мне нужно как-то запустить вторую спецификацию на clean ApplicationController.
Есть ли способ удалить перед фильтрами или полностью перезагрузить ApplicationController между спецификациями?
Например, вследующие спецификации, второе «это» не проходит:
describe ApplicationController do
context "with bf" do
before(:all) do
ApplicationController.class_eval do
before_filter :bf
def bf
@text = "hi"
end
def index
@text ||= ""
@text += " world!"
render :text => @text
end
end
end
it "should do" do
get :index
response.body.should == "hi world!"
end
end
context "without bf" do
it "should do" do
get :index
response.body.should == " world!"
end
end
end