Отделить тестовую базу данных приложения Sinatra от базы данных разработки?

В качестве обучающего упражнения я создаю практическое приложение, используя Sinatra, Datamapper и RSpec. Я использую этот шаблон , который, по сути, является шаблоном для всего вышеперечисленного.

Проблема, с которой я столкнулся, заключается в том, что кажется, что RSpec и Datamapper настроены, каждый раз, когда запускается спецификация, которая проверяет функциональность, связанную с базой данных, эти тесты напрямую изменяют мою базу данных разработки, а не тестовую базу данных.

Например, я хочу создать несколько объектов базы данных перед выполнением остальной части спецификации ...

before(:all) {
  Region.new(:country => "Canada", :country_code => "CA").save
  ProductLine.new(:reference => "Molders").save
  Product.new(:name => "The Black Molder").save
  Cart.new(:price => 25.95).save
}

Тем не менее, каждый раз, когда я запускаю RSpec, указанные выше элементы добавляются в мою базу данных разработки.

Почему вместо этого не создается тестовая база данных? Как я могу заставить тестовую базу данных работать правильно?

Это очень похоже на здесь , за исключением Sinatra вместо этого рельсов.

Если это поможет, мой код можно увидеть здесь .

5
задан Community 23 May 2017 в 12:14
поделиться