Ответ от ntalbott показывает действие get. Пост действий немного сложнее; если вы хотите отправить новый объект в виде сообщения XML, и чтобы атрибуты XML отображались в хэше params в контроллере, вы должны правильно определить заголовки. Вот пример (Rails 2.3.x):
class TruckTest < ActionController::IntegrationTest
def test_new_truck
paint_color = 'blue'
fuzzy_dice_count = 2
truck = Truck.new({:paint_color => paint_color, :fuzzy_dice_count => fuzzy_dice_count})
@headers ||= {}
@headers['HTTP_ACCEPT'] = @headers['CONTENT_TYPE'] = 'application/xml'
post '/trucks.xml', truck.to_xml, @headers
#puts @response.body
assert_select 'truck>paint_color', paint_color
assert_select 'truck>fuzzy_dice_count', fuzzy_dice_count.to_s
end
end
Здесь вы можете видеть, что второй аргумент для отправки не обязательно должен быть хешем параметров; это может быть строка (содержащая XML), , если , заголовки правильные. Третий аргумент, @headers, - это та часть, которая потребовала много исследований, чтобы понять.
(Обратите внимание также на использование to_s при сравнении целочисленного значения в assert_select.)