Прежде всего, вы не хотите тестировать встроенное преобразование json в хеш.То же относится и к XML.
Вы тестируете контроллер с данными в виде хэшей, не заботясь о том, являются ли они json, xml или html-формой.
Но если вы хотите сделать это в качестве упражнения, это автономный рубинскрипт для игры:)
require 'json'
url = URI.parse('http://localhost:3030/mymodels.json')
request = Net::HTTP::Post.new(url.path)
request.content_type="application/json"
request.basic_auth('username', 'password') #if used, else comment out
hash = {:mymodel => {:name => "Test Name 1", :description => "some data for testing description"}}
request.body = hash.to_json
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
puts response
для переключения на xml, используйте content_type="text/xml"
и
request.body = "<?xml version='1.0' encoding='UTF-8'?><somedata><name>Test Name 1</name><description>Some data for testing</description></somedata>"