Tôi muốn thiết lập một bài kiểm tra Rails để kiểm tra các mô hình của mình mà không phải thiết lập toàn bộ môi trường Rails - Corey Haines trong số excellent blog post on the subject của anh ấy.yêu cầu mô hình ActiveRecord mà không cần phải yêu cầu toàn bộ sơ đồ lớp, cho active_record_spec_helper
(Tôi biết rằng Preloaders như mùa xuân hoặc Guard đi một phần của con đường hướng sửa chữa vấn đề này, nhưng tôi đồng ý với lập luận của Corey rằng đây là "thực sự chỉ là một băng cá nhân trong vấn đề thực sự".)
vì vậy, tôi đã thiết lập helper spec của tôi và các tập tin khác như đặt ra trong bài viết trên blog của Corey và - nhưng vấn đề của tôi là chính xác như tôi mô tả nó trong my comment trên cùng ý chính:
về cơ bản, mối liên quan giữa mô hình của tôi có ý nghĩa để kiểm tra một mô hình, tôi phải require
rất nhiều tệp mô hình khác mà nó phủ nhận điểm sử dụng active_record_spec_helper
ở vị trí đầu tiên .
Ví dụ: nếu tôi muốn thử nghiệm comment.rb
nhưng nhận xét của tôi belongs_to :post
, thì tôi phải yêu cầu post
cũng như comment
để làm cho thử nghiệm của tôi hoạt động. Nhưng sau đó Post
có thể có các liên kết khác, ví dụ: belongs_to :user; has_many :drafts
, vì vậy tôi phải yêu cầu user
và drafts
cũng chỉ để kiểm tra Comment
... sau đó user
và drafts
có các hiệp hội cũng vậy, và vân vân cho đến khi tôi kết thúc tải thực tế mỗi mô hình trong sơ đồ lớp học của tôi.
(Nếu điều này không có ý nghĩa, tôi đã đưa ra một lời giải thích chi tiết hơn trong the comment.)
Có thể làm việc xung quanh này và tránh được việc phải require
tất cả những tập tin mô hình không liên quan? Hay có điều gì đó mang tính khái niệm mà tôi đang thiếu - liệu tôi có nên tránh liên kết tất cả các mô hình của tôi trong trang web khổng lồ này hay không thể tránh khỏi?
Hoặc là nó chỉ là không có giá trị nỗ lực và tôi nên dính với cho phép rails_helper
tải toàn bộ môi trường?
Tôi làm cách nào để bật tự động tải mà không tải toàn bộ ứng dụng Rails? Có ở đâu đó trong ActiveSupport không? – GMA
Cơ chế tự động nạp của Ruby không đủ tự nó và tôi không chắc liệu cơ chế Rails được xây dựng trên đầu trang của nó có thể được gọi riêng. Có lẽ tôi không nên quá láu cá khi miêu tả lựa chọn đó. Nếu bạn không thể tìm thấy thứ gì đó trong đá quý Rails có thể sử dụng được, bạn có thể đọc về khả năng tại http://urbanautomaton.com/blog/2013/08/27/rails-autoloading-hell/, ví dụ và có lẽ cuộn của riêng bạn. –