Tôi đang sử dụng các thủ thuật sau đây (từ http://mikbe.tk/2011/02/10/blazingly-fast-tests/) để đảm bảo mô hình được tải lại trên mỗi RSpec chạy với Spork:hằng redefined với Spork
Spork.each_run do
load "#{Rails.root}/config/routes.rb"
Dir["#{Rails.root}/app/**/*.rb"].each { |f| load f }
# .....
end
Tuy nhiên nó gây ra những cảnh báo sau mỗi khi tôi chạy thử nghiệm của tôi:
/myproject/app/models/model.rb:36: warning: already initialized constant CONFIGURABLE
nào tôi có thể tránh bằng cách đặt:
if !defined?(A_CONSTANT)
sau mỗi lần liên tục, không thực sự trông đúng (nhưng nó hoạt động). Bất kỳ đề xuất nào về cách tôi có thể thực hiện công việc này đúng cách? (tức là mô hình của tôi vẫn sẽ tải lại trong các thử nghiệm, nhưng tôi không phải đặt if
sau mỗi định nghĩa không đổi.)
Không chắc chắn chính xác về vấn đề của bạn với các cảnh báo, nhưng tôi đã được tìm kiếm vào thử nghiệm hiệu suất các bộ kiểm tra RSpec, vì vậy bạn có thể tìm thấy [câu trả lời StackOverflow] (http://stackoverflow.com/a/12215946/567863) tham chiếu cho tệp ** spec_helper.rb ** của bạn. –
Tôi đã thấy điều này xảy ra khi bạn khai báo một hằng số có cùng tên, nhưng bên trong của một đặc tả thay vì mã sản xuất của bạn. –