2009-11-23 6 views
1

Мне пришлось добавлять функции в приложение, которое зависит от базы данных из другого приложения. Я смог установить соединение с этой внешней базой данных и извлечь данные из него. Однако я не уверен, как получить основное приложение для создания тестовой базы данных для этого внешнего приложения.Настройка RSpec для приложения, которое зависит от внешней базы данных от другого приложения

Было бы здорово, если бы какой-то способ вытащить схему для этой базы данных и создать ее так же, как и «rake db: test: prepare». Существуют ли какие-либо возможности конфигурации для RSpec для этого, или мне придется катить мою собственную задачу?

ответ

0

Я не знаю, какой простой способ это сделать. Вы могли бы иметь SQL-схему, подготовленную и загрузить его в тестовой базе данных корыта пользовательские рейка задачи

Но если это для тестирования, это может быть хорошей идеей для вас, чтобы посмотреть в Фабрик Например Factory girl

«factory_girl - замена светильников с помощью простого синтаксиса определения, поддержка нескольких стратегий сборки (сохраненные экземпляры, несохраненные экземпляры, хэши атрибутов и обрезанные объекты) и поддержка нескольких заводов для одного и того же класса (пользователь, admin_user и т. Д.)), включая заводское наследование ».

И screencast

0

Это приложение Rails? Если это так, то задача db: test: prepare и связанные с ней задачи будут работать, даже если вы используете RSpec.

+0

забыл упомянуть, что. Да, это приложение для рельсов. Я не уверен в db: test: подготовка будет работать в этой ситуации. Как эта задача знает, какие базы данных создавать. Могу ли я указать его на схему БД из другого приложения, чтобы она включала и эту базу данных? – manlycode

0
I ended up just running "rake db:test:prepare" for the external application and update the database configs of the application I'm developing to include the test DB for the external application. I'd like to automate the 'rake db:test:prepare' for the external app, however I don't see myself updating its schema that often.