Для модели, которую вам не нужно разрушать во время тестирования, поместите ее в отдельную базу данных для целей тестирования. Только тестовая база данных, загруженная из database.yml, очищается и перестраивается из схемы базы данных разработки.
class PersistModel < ActiveRecord::Base
PersistModel.establish_connection(
:adapter => "sqlite3",
:database => "db/persist.sqlite3"
)
end
Этот класс никогда не очистит свою базу данных.
Возможно, вы проявите творческий подход и получите тестовую версию вашей реальной модели, которая устанавливает другое соединение.
class WeatherTest < Weather
WeatherTest.establish_connection(
:adapter => "sqlite3",
:database => "db/weather.sqlite3"
)
end
Таким образом, все ваши функции из «реальной» модели доступны для вашей тестовой версии.