Wie spotze ich eine 'Timeout' oder 'Fehler' Antwort mit Sinon / Qunit?

9

Ich hatte keine Probleme damit, die Erfolgsbedingung zu verspotten, aber ich kann mir nicht vorstellen, wie man die Fehler / Timeout-Bedingungen verspottet, wenn man Sinon und Qunit zum Testen und zur Ajax-Funktion verwendet:

Mein Setup ist das:

%Vor%

und mein Erfolgsfalltest, der glücklich läuft und die empfangenen Daten an die Erfolgsmethode empfängt / weiterleitet, ist dies:

%Vor%

Allerdings kann ich nicht herausfinden, was ich stattdessen tun sollte:

%Vor%

, damit mein Ajax-Call-Handler eine Fehler- oder Timeout-Methode "hört"? Das Einzige, was ich mir vorstellen konnte, war folgendes:

%Vor%

Aber es funktioniert nicht.

Was mache ich falsch oder was habe ich falsch verstanden? Alle helfen sehr geschätzt:)

    
CJ. 15.05.2013, 08:41
quelle

3 Antworten

0
___ answer21628706 ___

So etwas zu tun

%Vor%

löst den "Fehler" -Rückruf in jQuery-AJAX-Anfragen aus.

Wie für die Timouts können Sie sinons gefälschte Uhr wie folgt verwenden:

%Vor%     
___ qstntxt ___

Ich hatte keine Probleme damit, die Erfolgsbedingung zu verspotten, aber ich kann mir nicht vorstellen, wie man die Fehler / Timeout-Bedingungen verspottet, wenn man Sinon und Qunit zum Testen und zur Ajax-Funktion verwendet:

Mein Setup ist das:

%Vor%

und mein Erfolgsfalltest, der glücklich läuft und die empfangenen Daten an die Erfolgsmethode empfängt / weiterleitet, ist dies:

%Vor%

Allerdings kann ich nicht herausfinden, was ich stattdessen tun sollte:

%Vor%

, damit mein Ajax-Call-Handler eine Fehler- oder Timeout-Methode "hört"? Das Einzige, was ich mir vorstellen konnte, war folgendes:

%Vor%

Aber es funktioniert nicht.

Was mache ich falsch oder was habe ich falsch verstanden? Alle helfen sehr geschätzt:)

    
___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ tag123unittesting ___ Unit Testing ist eine Methode, bei der einzelne Quellcode-Einheiten auf ihre Tauglichkeit getestet werden. ___ tag123qnit ___ QUnit ist ein Framework zum Testen von JavaScript-Units, das vom jQuery-Projekt verwendet wird, um seinen Code und seine Plugins zu testen. Es ist jedoch in der Lage, generischen JavaScript-Code (client- und serverseitig) zu testen. ___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser-JavaScript-Bibliothek, die das DOM-Traversal (Document Object Model), die Ereignisbehandlung, Animationen und AJAX-Interaktionen erleichtert, indem die Diskrepanzen zwischen Browsern minimiert werden. Eine mit jQuery gekennzeichnete Frage sollte mit jQuery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ qstnhdr ___ Wie spotze ich eine 'Timeout' oder 'Fehler' Antwort mit Sinon / Qunit? ___ answer16831859 ​​___

Für die Zeitüberschreitung könnten sinons falsche Timer helfen. Mit ihnen müssten Sie das Timeout nicht auf 1 ms setzen. Was die Misserfolge angeht, sieht Ihr Ansatz für mich korrekt aus. Können Sie uns mehr Code geben, insbesondere den Fehlerbehandler?

    
___ tag123sinon ___ Sinon ist ein spöttisches Framework für JavaScript, das Spione, Stubs und Mocks erzeugen kann. ___ answer22020949 ___

Setzen Sie eine Zeitüberschreitung für Ihren $ .ajax () Aufruf und verwenden Sie Sinon Faktimer , um die Uhr vor dem Antworten zu bewegen.

    
___
Adrian Heine 30.05.2013 08:59
quelle
0

So etwas zu tun

%Vor%

löst den "Fehler" -Rückruf in jQuery-AJAX-Anfragen aus.

Wie für die Timouts können Sie sinons gefälschte Uhr wie folgt verwenden:

%Vor%     
Jost 07.02.2014 13:12
quelle
-1

Setzen Sie eine Zeitüberschreitung für Ihren $ .ajax () Aufruf und verwenden Sie Sinon Faktimer , um die Uhr vor dem Antworten zu bewegen.

    
FactualHarmony 25.02.2014 16:54
quelle