Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试测试异步Dart ajax HttpRequest时出错_Ajax_Dart_Async Await_Dart Async - Fatal编程技术网

尝试测试异步Dart ajax HttpRequest时出错

尝试测试异步Dart ajax HttpRequest时出错,ajax,dart,async-await,dart-async,Ajax,Dart,Async Await,Dart Async,这个问题是这个问题的简化版本: 我基本上删除了所有不必要的代码,只剩下测试和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 respons

这个问题是这个问题的简化版本:

我基本上删除了所有不必要的代码,只剩下测试和
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;
  });

}
根据建议,我
返回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>
~/Work/my_libs/dart/logmaster$dtest-d-n“发送ajax请求并确认来自服务器的200响应”
00:05+0-1:test/http\u report\u adapter\u test.dart:发送ajax请求并确认来自服务器的200响应
[对象XMLHttpRequestProgressEvent]
dart:html HttpRequest.postFormData
http\u report\u adapter\u test.dart 14:25 main。
[对象XMLHttpRequestProgressEvent]
dart:html HttpRequest.postFormData
http\u report\u adapter\u test.dart 14:25 main。

我想我显然误解了一些基本的东西。我尝试了此测试的多种变体,包括
async/await
expectAsync
completion
,但似乎没有任何效果。如果您有什么好的建议,我将不胜感激。

我想您想要的是:

  test("sends an ajax request and acknowledges a 200 response from the server", () async {
    await HttpRequest.postFormData("http://localhost:4567/errors", { 'hello': 'world'});

    print("hello!"); // or expect(x, y);
  });

我已经做了您建议的确切更改,下面是输出:看起来您的测试失败了。不幸的是,Http错误没有多大帮助。是的,但是为什么它会失败呢?我的意思是,只有一行使用了Dart的std库类--
HttpRequest
。它试图连接的服务器清楚地接收到请求(我可以在日志中看到)。这里有我自己的0个代码。