Tôi đang tìm cách sạch sẽ để sử dụng JBuilder và kiểm tra đầu ra json bằng RSpec. Cách phổ biến để thử nghiệm JSON là thực hiện phương thức as_json, và sau đó trong RSpec, hãy so sánh đối tượng đã nhận với phương thức object.to_json. Nhưng một lý do lớn mà tôi đang sử dụng JBuilder là tôi không muốn tất cả các thuộc tính mà to_json khạc ra; vì vậy điều này phá vỡ so sánh.Làm thế nào để sử dụng RSpec với JBuilder?
Hiện nay với JBuilder Tôi phải làm như sau để kiểm tra kết quả RSpec:
1) Tạo một đối tượng Factory: @venue
2) Tạo một băm bên trong kiểm tra RSpec của tôi có chứa chuỗi JSON "dự kiến" trở lại
@expected => {:id => @venue.id,:name=>@venue.name..........}
2) So sánh chuỗi bất ngờ với results.response.body được trả về từ cuộc gọi JSON.
Điều này có vẻ đơn giản, ngoại trừ tôi có đối tượng được hiển thị với hơn 15 thuộc tính và xây dựng chuỗi băm không mong muốn là cồng kềnh và rất giòn. Có cách nào tốt hơn để làm điều này?
Tôi đã làm chính xác điều đó. Tôi không thể nghĩ ra cách tốt hơn để làm điều đó. Tôi đã tạo một băm và áp dụng '.to_json' trên' @ expected'. Một điều tôi làm tăng tốc độ này và làm cho nó ít giòn hơn. Có lẽ với chi phí chính xác? Là để xây dựng băm của tôi với thu thập và bản đồ. Tôi đoán bản chất cụ thể của việc xây dựng mẫu tùy chỉnh với bất kỳ thư viện xây dựng chuỗi JSON nào yêu cầu bạn viết một bài kiểm tra phù hợp với các chi tiết cụ thể của công việc bạn làm ..:/ – stuartc
@beeudoublez Bạn có thể sử dụng RSpec để kiểm tra xem jbuilder không? Tôi đang gặp khó khăn khi nhận rspec để truyền các đối tượng cho khung nhìn để trình xử lý jbuilder xây dựng JSON. Bạn có ví dụ về tệp '* _spec.rb' đang hoạt động không? – sorens