Модульные тесты Rails без настройки дБ или демонтажа?
Я хочу написать несколько модульных тестов, которые не вносят никаких изменений в базу данных.
У меня есть приложение Rails 2.3.11. Это приложение имеет базу данных SQLite в качестве своей основной базы данных. Во многих отношениях это заурядное приложение Rails.
Уникальность этого приложения заключается в том, что оно также устанавливает соединение с базой данных SQL Server. У меня есть некоторые модели, которые являются абстрактными классами, и они используют базу данных SQL Server. я имею before_save
а также before_destroy
обратные вызовы для предотвращения каких-либо изменений в базе данных SQL Server. Кроме того, учетные данные пользователя для подключения к SQL Server должны быть доступны только для чтения.
Я хотел бы написать модульные тесты, которые делают утверждения на данных, которые уже присутствуют в базе данных SQL Server. Но я не хочу устанавливать или разрушать базу данных SQL Server.
Я боюсь просто посмотреть, что происходит. Я хотел бы иметь параметр в модульном тесте, который будет препятствовать тому, чтобы Rails пытался настроить или разрушить базу данных SQL Server. Это возможно? Как мне это сделать?
Спасибо!
1 ответ
Настройка / демонтаж влияет только на базу данных приложения (SQLite, похоже), но не на дополнительные внешние подключения к базе данных.
Кроме того, вы должны полностью отделить свою тестовую среду от рабочей среды. Таким образом, если вы также используете тестовую БД SQLServer (и вы должны это сделать, имея в себе тестовые данные, а не рабочие), то все будет в порядке, даже если произойдет худшее.