Tôi đang sử dụng rspec và tôi đang thử kiểm tra xem mô hình của tôi có nhiều x không. Tôi đã thử tất cả mọi thứ, bao gồm lặp qua mảng phương thức và dường như không thể tìm thấy phương thức tốt trực tuyến. Vậy tôi nên sử dụng cái gì?Tôi làm cách nào để kiểm tra thuộc tính thuộc_to và has_many trong Rails?
8
A
Trả lời
19
Nếu không có nhiều hack bạn có thể sử dụng đá quý đáng chú ý: http://github.com/carlosbrando/remarkable
Trích từ tài liệu đáng chú ý:
describe Post do
it { should belong_to(:user) }
it { should have_many(:comments) }
it { should have_and_belong_to_many(:tags) }
end
6
Bạn có thể suy nghĩ về lớp:
MyModel.reflect_on_association(:x).macro == :has_one
Đó là lẽ dễ dàng hơn nếu bạn chỉ cần sử dụng shoulda, có những phương pháp helper để nó đọc nhiều sạch hơn: it { should have_many(:x) }
1
đây là một giải pháp độc lập rspec, các Điều quan trọng là phải sử dụng reflect_on_assocation
class MyModel < ActiveRecord::Base
has_many :children
belongs_to :owner
end
reflection_children = MyModel.reflect_on_association(:children)
if !reflection_children.nil?
if reflection_children.macro == :has_many
# everything is alright
else
# it's not has_many but exists
end
else
# it doesn't exist at all !
end
reflection_owner = MyModel.reflect_on_association(:owner)
if !reflection_owner.nil?
if reflection_owner.macro == :belongs_to
# everything is alright!
else
# it's not belongs_to but exists
end
else
# it doesn't exist at all!
end
Các vấn đề liên quan
- 1. Có cách nào để kiểm tra rằng liên kết has_many tồn tại trong Rails 3.1 không?
- 2. Rails Câu hỏi: thuộc_to với STI - làm thế nào để tôi làm điều này một cách chính xác?
- 3. Tôi làm cách nào để kiểm tra tính năng bộ nhớ cache của đường ray
- 4. Làm cách nào để xem loại thuộc tính trong Trình kiểm tra đối tượng?
- 5. Làm cách nào để kiểm tra xem thuộc tính lồng nhau có tồn tại trong SimpleXML
- 6. Làm cách nào để kiểm tra xem thuộc tính có tồn tại trong XmlAttributeCollection không?
- 7. Rails 3 has_many đã thay đổi?
- 8. Làm cách nào để tạo toàn bộ Nhật ký kiểm tra trong Rails cho mỗi bảng?
- 9. Rails actions_as_paranoid và has_many: thông qua
- 10. Cách kiểm tra nhiều thuộc tính trong XPath?
- 11. Tôi làm cách nào để kiểm tra kiểu trong MongoDB?
- 12. Sự khác biệt giữa has_one và thuộc_to trong Rails?
- 13. Rails has_many thông qua truy vấn tùy thuộc vào thuộc tính bảng
- 14. Làm thế nào để di chuyển từ thuộc_to, sang embedded_in trong Mongoid?
- 15. Rails thuộc về has_many với khóa ngoài tùy chỉnh
- 16. Làm cách nào để đặt hộp kiểm mặc định là "đã kiểm tra" trong Rails 1.2.3?
- 17. : thuộc tính tự động của các liên kết has_many bị hỏng trong Rails 2.3.4?
- 18. Kiểm tra thuộc tính lớp python
- 19. Làm cách nào để kiểm tra xem một lớp groovy có thuộc tính tĩnh hay không?
- 20. Làm thế nào để bạn kiểm tra hàm băm params trong bài kiểm tra Rails?
- 21. Cách đọc thuộc tính Maven từ kiểm tra JUnit?
- 22. Rails: làm thế nào để kiểm tra before_save callbacks
- 23. Tôi làm cách nào để kiểm tra các url django?
- 24. Tôi làm cách nào để kiểm tra dịch vụ WCF?
- 25. Tôi làm cách nào để kiểm tra báo cáo jasper?
- 26. Làm cách nào để kiểm tra sự tồn tại và loại thuộc tính dựa trên khóa nhập NSString?
- 27. Tôi làm cách nào để kiểm tra tính bền vững của đơn vị?
- 28. Rails .where() thuộc tính IS NOT NULL
- 29. Tôi làm cách nào để hủy một thuộc tính CSS?
- 30. Tôi làm cách nào để kiểm tra dịch vụ web?
Very nice! Tôi nghĩ rằng tôi có thể bắt đầu sử dụng đá quý đó. –
Một tùy chọn khác là Shoulda bởi thinkbot, có cú pháp tương tự đáng kể. http://github.com/thoughtbot/shoulda –
Vẻ đẹp đáng chú ý hoàn chỉnh hơn so với Shoulda. Tôi chưa từng thấy nó trước đây. –