Là một bài tập học tập, tôi đang xây dựng một ứng dụng thực hành sử dụng Sinatra, Datamapper và RSpec. Tôi đang sử dụng this template, cơ bản là bản mẫu cho tất cả những điều trên.Tách biệt cơ sở dữ liệu thử nghiệm của ứng dụng Sinatra từ cơ sở dữ liệu phát triển?
Vấn đề tôi đang gặp là cách RSpec và Datamapper dường như được định cấu hình, mỗi lần chạy thông số kiểm tra chức năng liên quan đến cơ sở dữ liệu, các kiểm tra này trực tiếp thay đổi cơ sở dữ liệu phát triển của tôi thay vì cơ sở dữ liệu thử nghiệm.
Ví dụ, tôi muốn tạo một vài đối tượng cơ sở dữ liệu trước khi chạy phần còn lại của spec ...
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
}
Tuy nhiên, mỗi khi tôi chạy RSpec, các yếu tố trên được thêm vào cơ sở dữ liệu phát triển của tôi.
Tại sao cơ sở dữ liệu thử nghiệm không được tạo? Tôi làm cách nào để cơ sở dữ liệu thử nghiệm hoạt động bình thường?
Điều này xuất hiện khá giống với this issue here, ngoại trừ Sinatra thay vì Rails.
Nếu có bất kỳ trợ giúp nào, mã của tôi có thể được xem here.
Xin chào! Cảm ơn bạn đã trả lời :) –
Cảm ơn, tôi đã đặt 'ENV ['RACK_ENV'] = 'test'' ở nhiều nơi khác nhau và cảm thấy thất vọng vì sao nó không được chọn - sau khi đọc câu trả lời của tôi đỉnh của 'spec_helper.rb' ** trước **' require 'sinatra'' và bây giờ nó hoạt động! – Shevaun
Cảm ơn rất nhiều. Điều này khiến tôi phát điên. –