Есть ли причина, по которой вы не просто передаете параметры самому почтовому вызову?Например:
post "create", :api_key => api_key, :format => "xml", :params => data
Тесты контроллера предназначены для проверки того, что действие контроллера выполняет то, что оно ожидает, когда вы отправляете ему параметры, о которых вы уже знаете.обычно они не предназначены для проверки парсинга xml на params.
Если вы просто хотите протестировать первое - тогда не беспокойтесь о превращении их в xml - просто передайте их как хеш- вам может понадобиться изучить что-то, что выходит за рамки испытаний рельсов (например, селен или раствор)