Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ứng dụng của tôi truy cập cơ sở dữ liệu từ xa. Làm cách nào để chạy các bài kiểm tra đơn vị một cách hiệu quả?

TL; DR:Sử dụng nulldb và lớp cha nhận biết kiểm tra

Sử dụng nulldb khi bạn đang thử nghiệm và sử dụng db thực nếu không. Đây là cách thực hiện:

Đầu tiên, hãy đưa cái này vào Gemfile của bạn:

group :development, :test do
  gem 'activerecord-nulldb-adapter', :git => 'git://github.com/nulldb/nulldb.git'
end

và sau đó thực hiện bundle install thông thường

Xác định lớp cơ sở cho tất cả các mô hình được sao lưu trong cơ sở dữ liệu bên ngoài:

class ExternalModel < ActiveRecord::Base
  if Rails.app.test?
    establish_connection(:adapter => :nulldb)
  else
    establish_connection(:myapp)
  end

  def readonly?; true; end
end

Sau đó, tất cả các mô hình bên ngoài kế thừa từ ExternalModel (lẽ ra tôi phải làm điều này ngay từ đầu):

class ExternalUser < ExternalModel
  ...
end

Khi chạy trong môi trường thử nghiệm, nó sẽ không cố gắng kết nối với bảng bên ngoài. Tất nhiên, các nỗ lực truy cập một phiên bản của ExternalUser sẽ không thành công, nhưng bạn có thể thiết lập kết nối một cách chọn lọc với cơ sở dữ liệu bên ngoài trong quá trình kiểm tra tích hợp hoặc tham chiếu sơ khai hoặc mô phỏng đến mô hình bên ngoài.

Quan trọng nhất, tất cả các bài kiểm tra của tôi hiện chạy rất nhanh.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo ứng dụng Android với cơ sở dữ liệu MySQL cục bộ?

  2. sử dụng như trong tham gia với các bản ghi hoạt động của trình kích hoạt mã

  3. mysql CHỌN KHÔNG TRONG () - tập hợp rời rạc?

  4. Xóa các thẻ HTML khỏi bản ghi

  5. Làm cách nào để lưu trữ mật khẩu an toàn trong MySQL và xác thực với các dịch vụ bên ngoài