2008-12-03 31 views
7

Tôi muốn viết một bài kiểm tra chức năng của một dịch vụ web RESTful mà tôi đang làm việc trong một ứng dụng Ruby on Rails.Kiểm tra chức năng của một POST RESTful trong Ruby on Rails

Bài kiểm tra là yêu cầu POST trong đó nội dung của yêu cầu là một tài liệu XML thuần túy chứ không phải biểu mẫu. Bất kỳ gợi ý về cách làm điều này? Vấn đề tôi gặp phải là làm thế nào để xác định XML của cơ thể trong lời gọi đến phương thức post.

Trả lời

-1

Khám phá macro "should_be_restful" của shoulda. Macro này sẽ sớm là deprecated từ chữ cái và chỉ có sẵn trong đá quý woulda.

1

Bạn có thể thực hiện việc này bằng cách đặt @request.env['RAW_POST_BODY'] thành luồng đầu vào mong muốn.

8

Sau đây làm việc cho tôi:

@request.env['RAW_POST_DATA'] = MY_XML_STRING 
post :create 
-1

tôi chỉ viết một kịch bản thử nghiệm sử dụng Net: HTTP để kiểm tra dịch vụ REST.

0

Tôi tìm thấy giải pháp sau tại http://de.softuses.com/6051

message = '<?xml version="1.0" encoding="UTF-8"?> 
<tag>content</tag>' 

@xml_request_headers ||= {} 
@xml_request_headers['HTTP_ACCEPT'] = @xml_request_headers['CONTENT_TYPE'] = 'application/xml' 

post '/controller/action.xml', message, @xml_request_headers 

Tôi thực sự được xác định trong phương pháp @xml_request_headerssetup của tôi và có thể sử dụng nó trong tất cả các thử nghiệm của tôi trong tập tin này. Có lẽ nó sẽ là một ý tưởng tốt để đặt nó vào test_helper.rb nếu nó được yêu cầu bởi nhiều tập tin hơn.

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