2013-02-25 81 views
0

我想從minitest發佈一個xml到控制器。htmp post in rails minitest

它是如何工作在正常模式的方式是這樣的:

捲曲-X POST -H 「內容類型:文本/ XML」 -d「@ /用戶/博提/ Rails的/客戶/凱文/ search_server /db/search.xml」本地主機:3000 /搜索

我試着這樣做:

test "search with invalid xml" do 
    path_to_file = File.join Rails.root.to_s, 'test', 'search_invalid.xml' 
    xml = File.read(path_to_file) 
    @request.env['RAW_POST_DATA'] = xml 
    post "/search/search", xml, {"Content-type" => "text/xml"} 

但這種方式,我得到這個異常:

NoMethodError: undefined method `symbolize_keys' for #<String:0x007fbd7d863188> 

回答

1

我做這樣在我的測試:

path_to_file = File.join Rails.root.to_s, 'test', 'search_invalid_xml.xml' 
xml = File.read(path_to_file) 
@request.env['RAW_POST_DATA'] = xml 
post :search, nil, {"Content-type" => "text/xml"} 

然後這樣在我的控制器:

search_doc = Nokogiri::XML.parse request.raw_post