2017-07-07 3 views
0

Ich habe einen PrototypeJS AJAX-Request wie dieser (Dritthersteller-Code):So simulieren/testen Sie den AJAX-Exception-Handler?

new Ajax.Request(url, 
{ 
    method: 'get', 
    onException: function(transport, e) 
    { 
     //... 
    }, 
    onComplete: function(transport) 
    { 
     //... 
    } 
}); 

und will das Verhalten von onException zu testen. Ich habe die Kontrolle über die Server-Seite, also kann ich die Antwort ändern. Aber einfach einen 500 Status zurückgeben tut nicht den Trick, es wird noch von onComplete gehandhabt.

Welche Möglichkeiten habe ich also, den onException Handler auszulösen?

Antwort

1

onException abgefeuert nur wenn eine Ausnahme war, während andere Rückrufe Dispatching finden here, in Ajax Antwort Rückrufe. Ich bin mir also nicht sicher, ob es einen Weg gibt, es zu testen.

EDIT:

ich read (in french, didn't find anything in english), dass, wenn Sie eine Cross-Domain-Anfrage machen es die Entlüftungs abfeuert.

+0

Ich konnte 'onComplete' eine Ausnahme auslösen, danke für den Hinweis! –

+0

Das Definieren eines OnFailure-Callbacks ist möglicherweise eine Möglichkeit, hier zu suchen, sodass Sie in OnComplete nicht auf Erfolg prüfen müssen. Der Rückruf onComplete wird ausgelöst, unabhängig vom Ergebnis der Anfrage an den Server. Wenn Sie einen Zweig haben, den Sie nur verfolgen möchten, wenn keine Fehler vorhanden sind, fügen Sie ihn in 'onSuccess' statt in' onComplete' ein. – Walter