Я создал наблюдателя, который следит за всеми моделями на предмет изменений в базе данных. Этот одитор-наблюдатель отлично работает сам по себе, но разрушает набор тестов. Мне неясно, почему наблюдатель приводит к сбою всех моих тестов. Если вы знаете, пожалуйста, скажите мне. (Между прочим, я использую Rails 3.2.14.)
Но что еще более важно, я ищу способ заставить этого наблюдателя хорошо работать с набором тестов. Я думал о добавлении какого-то флага на уровень конфигурации среды, который класс наблюдателя может оценивать во время выполнения. Затем я бы просто установил флаг «false» для среды разработки и тестирования и true для рабочей среды. Но я понятия не имею, как я буду это делать. Какие-либо предложения?
У меня нет возможности отключить наблюдателя в моем spec_helper, потому что значительное количество тестов на самом деле не загружает spec_helper. Большинство этих тестов на самом деле не вносят изменений в базу данных, но гипотетически они могут, а я не хочу копаться в сотнях тестовых файлов для их рефакторинга.
Итак, я ищу способ отключить или вывести из строя моего наблюдателя для всей тестовой среды. Уровень конфигурации кажется подходящим местом для этого, но я не уверен, как это сделать. Я хотел бы услышать любые советы о том, как это сделать.
Обновление: связанный пост с более подробным описанием проблем, с которыми я сталкиваюсь: https://stackoverflow.com/questions/18321693/how-to-disable-an-activerecord-observer-in-a-rails-engine?noredirect=1#comment26888767_18321693