Beim Schreiben eines ziemlich großen JavaScript-Moduls mit vielen asynchronen Operationen, die allesamt mit Versprechen zu tun haben, wird es ziemlich schwierig, den Fluss / Zustand von Versprechen zu debuggen und zu befolgen.
Gibt es irgendwelche Tools oder Frameworks für Instrumentierungstests oder Modulcode, um alle Promises in meinem System fließen zu lassen? Ich benutze jQuery verspricht, wenn es überhaupt darauf ankommt.
Von meinem Kopf weg und angeregt durch @ MrLeaps Idee, Nachrichten an die console
zu senden, wie wäre es mit einem Erstellen von Deferreds über einen "Adapter" Ihres eigenen Designs.
zB (embryonal und ungetestet):
%Vor% Auf diese Weise können Sie beim Debuggen zusätzliche Dinge tun (wenn Sie es zum Laufen gebracht haben), mit einem einfachen Mechanismus, um den zusätzlichen Code im Produktionscode zu deaktivieren, ohne die gesamte Codebereinigung durchgehen zu müssen console.log()
Aussagen.
Es würde ziemlich viel Entwicklungsaufwand verursachen, aber wenn Sie einen Knoten für das Backend verwenden, können Sie sehr robuste asynchrone Unit-Tests mit vows.js implementieren . Wenn Sie noch mehr Arbeit für sich selbst hinzufügen möchten, können Sie Schwüre verwenden, um Scheinversionen aller Ihrer Antworten zu erstellen, wenn Sie eine andere Art von Servertechnologie verwenden und sie zum Testen und Berichten verwenden. Mit einem node.js-Mock-Server können Sie auch robuste, Enterprise ^^ Dinge tun, wie zum Beispiel bestimmte Anfragen simulieren, die nicht sehen können, wie elegant Ihr Frontend darauf reagiert.
Ich wünschte, ich hätte eine bessere Antwort als diese obwohl; console.log
und console.dir
sind deine besten Freunde. Schreibe deine Rückrufe voll mit ihnen, damit du eine Vorstellung davon bekommst, wie lange es dauert, und in welcher Reihenfolge sie passieren.
Tags und Links javascript jquery testing promise