Diese Frage ist eine vereinfachte Version dieses: Testing dart ajax HttpRequestFehler beim Versuch, eine Asynchron-Dart Ajax zu testen Httprequest
ich im Grunde nur den Test verlassen alle unnötigen Code entfernt und HttpRequest.postFormData
Anruf.
Das Problem: Test scheint nicht zu warten, bis die Zukunft abgeschlossen ist. Der Testcode:
# http_report_adapter_test.dart
import "package:test/test.dart";
import 'dart:html';
void main() {
test("sends an ajax request and acknowledges a 200 response from the server",() {
var f = HttpRequest.postFormData("http://localhost:4567/errors", { 'hello': 'world'});
f.then((_) => print("!!!!!!!"));
return f;
});
}
Per Beratung, ich return f
und der Test soll warten, bis die Zukunft abgeschlossen ist. Jedoch ist dies die Ausgabe, die ich stattdessen bekomme:
~/Work/my_libs/dart/logmaster master$ dtest-d -n "sends an ajax request and acknowledges a 200 response from the server"
00:05 +0 -1: test/http_report_adapter_test.dart: sends an ajax request and acknowledges a 200 response from the server
[object XMLHttpRequestProgressEvent]
dart:html HttpRequest.postFormData
http_report_adapter_test.dart 14:25 main.<fn>
[object XMLHttpRequestProgressEvent]
dart:html HttpRequest.postFormData
http_report_adapter_test.dart 14:25 main.<fn>
Ich glaube, ich verstehe eindeutig etwas Grundlegendes. Ich habe mehrere Variationen dieses Tests versucht, mit async/await
, expectAsync
, completion
, aber nichts scheint zu funktionieren. Würde mich über jeden guten Rat freuen.
ich die genauen Änderungen vorgenommen haben Sie vorgeschlagen und hier ist die Ausgabe: http://pastie.org/10818961 – snitko
Sieht aus wie Ihr Test versagt. Und leider helfen die HTTP-Fehler nicht viel. – Pacane
Ja, aber warum würde es scheitern? Ich meine, es gibt nur eine Zeile, die Dart's Standard-Lib-Klasse benutzt - 'HttpRequest'. Der Server, mit dem die Verbindung hergestellt werden soll, erhält die Anfrage eindeutig (ich kann es in den Protokollen sehen). Es gibt buchstäblich 0 von meinem eigenen Code hier. – snitko