Ntalbott'un yanıtı bir harekete geçme eylemi gösterir. Hareket sonrası eylem biraz daha zorlayıcı; Yeni nesneyi bir XML mesajı olarak göndermek ve XML niteliklerinin denetleyicideki params karma değerinde gösterilmesini istiyorsanız, üstbilgileri doğru şekilde almanız gerekir. İşte bir örnek (Raylar 2.3.x) var:
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
İleti göndermek için 2 bağımsız değişkeni bir parametre karma olmak zorunda olmadığını burada görebilirsiniz; başlıkları doğruysa, bir dize (XML içeren), olabilir. 3. argüman, @headers, anlamaya çok fazla araştırma yapan bölüm.
(ayrıca Not to_s kullanımının assert_select bir tamsayı değeri ile karşılaştırılması.)
bildiğim bu kısmı, bir A..Z entegrasyon testi –
O assert_equal arayan da çok kırılgan. Öğe veya özellik sırasının garantisi yoktur; eğer değişirse, testiniz bozulur. XML ağaçlarının eşitliğini kontrol etmek için doğru dize karşılaştırması doğru yol değildir. – bjnord