В пределах моих спецификаций контроллера я заглушаю действительные? для некоторых тестов маршрутизации (на основе Райана Бейтса nifty_scaffold): -
it "create action should render new template when model is invalid" do
Company.any_instance.stubs(:valid?).returns(false)
post :create
response.should render_template(:new)
end
Это нормально, когда я тестирую контроллеры изолированно. У меня также есть следующее в моей модели spec
it "is valid with valid attributes" do
@company.should be_valid
end
Опять же, это прекрасно работает при тестировании в изоляции. Проблема возникает, если я запускаю спецификации для обеих моделей и контроллеров. Модельный тест всегда терпит неудачу как действительный? метод был заглушен. Есть ли способ для меня убрать заглушку any_instance, когда тест контроллера сорван.
Я справился с этой проблемой, выполнив тесты в обратной алфавитной последовательности, чтобы убедиться, что модельные тесты выполняются раньше контроллеров, но мне действительно не нравится, когда мои тесты зависят от последовательности.