Этот вопрос представляет собой упрощенную версию этого: Testing dart ajax HttpRequestОшибка при попытке протестировать асинхронной Dart Аякса HttpRequest
Я в основном удалены все ненужные код оставив только тест и HttpRequest.postFormData
вызов.
Проблема: тест, похоже, не дождался, пока будущее не завершится. тест-код:
# 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;
});
}
По совету я return f
и тест должен ждать, пока будущее не завершится. Однако это результат, который я получаю вместо этого:
~/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>
Я думаю, что я, очевидно, неправильно понимаю что-то фундаментальное. Я пробовал несколько вариантов этого теста: async/await
, expectAsync
, completion
, но ничего не работает. По достоинству оцените любые полезные советы.
Я сделал точные изменения, предложенные и вот результат: http://pastie.org/10818961 – snitko
Похоже, ваш тест не удается. И, к сожалению, ошибки Http не очень помогают. – Pacane
Да, но почему это провалится? Я имею в виду, что есть только одна строка, которая использует класс dd's std lib - 'HttpRequest'. Сервер, к которому он пытается подключиться, явно получает запрос (я вижу его в журналах). Здесь буквально 0 моего собственного кода. – snitko