Tôi có một mô hình ActiveRecord có một số cuộc gọi lại và xác thực tùy chỉnh mà tôi muốn kiểm tra. Nó có nghĩa là, tôi phải công khai tất cả chúng. Đó có phải là một thực hành tốt hay là có một giải pháp tốt hơn trong trường hợp này?Ruby on Rails: tất cả các phương thức gọi lại ActiveRecord của tôi có phải là riêng tư không?
Ví dụ về các phương pháp tôi muốn thử nghiệm:
def before_validation
original.edit(self) if original
end
validate :unique?, on: :create
def unique?
return true if original.blank?
errors.add(:base, 'The entry already exists')
false
end
Nói cách khác:
- Nếu tôi muốn thử nghiệm phương pháp "before_validation", làm tôi phải thực hiện công khai và gọi test_object .before_validation trực tiếp trong tệp Rspec mô hình của tôi?
- Nếu tôi muốn kiểm tra không chỉ, phương thức xác thực tùy chỉnh duy nhất?() Được gọi là xác thực, mà còn là chính phương thức, tôi có phải tạo duy nhất không?() Công khai?
Vấn đề là, không phải phương pháp nào tôi đang sử dụng ngoài mô hình của mình (vì vậy chúng phải là riêng tư), nhưng làm cách nào tôi có thể kiểm tra mà không công khai chúng?