2013-02-25 41 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