2010-08-26 28 views
9

Tôi đang cố gắng kiểm tra hành động của đường ray có json thô trong nội dung POST. Nếu tôi cuộn tròn với bộ tiêu đề Content-Type: application/json, đường ray sẽ phân tích cú pháp các tham số chính xác.Làm cách nào để bạn chỉ định Loại nội dung (và các tiêu đề khác) và yêu cầu nội dung trong kiểm tra Bộ điều khiển RSpec Rails?

Làm cách nào để bạn đặt trực tiếp nội dung yêu cầu và tiêu đề trong kiểm tra bộ điều khiển rspec?

Trả lời

9

Trong RSpec 1.3, bạn có thể hoạt động trên biến "yêu cầu". Một cái gì đó như thế này nên làm việc cho bạn:

request.env['CONTENT_TYPE'] = 'application/json' 
post :method_name 
+0

này đã làm việc một cách hoàn hảo, kết hợp với các thiết lập params trong request.env ['RAW_POST_DATA']. Cảm ơn. –

+2

2 năm sau (2012-tháng 11-02), điều này không hoạt động nữa. Có ai có một cách cập nhật để buộc các yêu cầu được 'json'? Tôi đã cài đặt: format =>: json, nhưng điều này không chính xác những gì khách hàng đang làm và tôi cũng đang cố gắng sử dụng fdoc để tạo tài liệu API bao gồm tham số bổ sung này trong mọi API (Chúng tôi yêu cầu khách hàng đặt tiêu đề Chấp nhận để 'application/json'). – sorens

+0

xem [câu trả lời này] (http://stackoverflow.com/a/4039492/349423) để biết cách giải quyết vấn đề này. – sorens

0

tôi sử dụng bài: METHOD_NAME, {: format =>: json, ... dữ liệu tham số khác}

+2

Điều này đặt tiêu đề 'Chấp nhận', không phải 'Loại nội dung'. –

Các vấn đề liên quan