Модульные тесты 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 (и вы должны это сделать, имея в себе тестовые данные, а не рабочие), то все будет в порядке, даже если произойдет худшее.

Другие вопросы по тегам