Тестирование моделей с несколькими подключениями к базе данных в Rails с использованием ActiveRecord - PullRequest
3 голосов
/ 15 апреля 2009

Как лучше всего протестировать модель, использующую другое соединение с базой данных в Rails. Например, у меня есть модель FooBar, которая только для чтения:

class FooBar < ActiveRecord::Base
  establish_connection configurations['foo_bars']
  # ...
end

Есть ли хорошие соглашения, хаки или плагины?

1 Ответ

1 голос
/ 16 апреля 2009

По моему опыту, когда соединение установлено, вы можете обращаться с моделью так же, как с любой другой моделью. Поскольку вы просто потребляете данные, которые упростят часть тестирования, поскольку вам не нужно будет проверять данные.

Очевидно, что Rails взаимодействует с двумя разными базами данных из двух разных моделей, вы не сможете выполнять соединения между базами данных, и поэтому там тоже нечего будет тестировать.

Итак, чтобы ответить на вопрос: как лучше всего протестировать модель, использующую вторую базу данных? Я бы сказал, точно так же, как вы проверили бы его, если бы это была ваша единственная база данных.

Я обнаружил, что в моих моделях, которые обертывают мои унаследованные базы данных, я должен добавить специальный код в коде, который делает вещи немного более "Rails-y" и делает вид и код контроллера похожим на has_one и belongs_to введите код там. У меня есть тесты, которые используют эти пользовательские методы.

Надеюсь, это поможет.

...