小编Lex*_*hny的帖子

Dart 事件队列:如何调试事件队列?

我正在编写一些集成测试,这些测试使用了一个HttpServer,一堆Directory().watch()'ers 和可能的其他一些未来/流监听代码。

我正在使用以下测试配置:

class LaserServerTestConfiguration extends SimpleConfiguration {
  LaserServer _server;
  LaserServerTestConfiguration(this._server);
  void onDone(bool success) {
    super.onDone(success);
    _server.stop();
  }
}
Run Code Online (Sandbox Code Playgroud)

我的测试如下所示:

main() {
  var conf = new LaserConfiguration.fromPath('test/test_config.yaml');
  var server = new LaserServer(conf);
  unittestConfiguration = new LaserServerTestConfiguration(server);

  server.start().then((_) {

    test('test file changed event', () {
      var response = new Completer<Map>();
      response.future.then(expectAsync((e) =>
        expect(e, containsValue('test/sample/sample_test.html'))
      ));
      WebSocket.connect("ws://localhost:2014").then((ws) {
        ws.listen((msg) {
          response.complete(JSON.decode(msg));
          ws.close();
        });
        new File('test/sample/sample.dart').writeAsString("");
      });
    });

  });
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在测试运行(并通过)之后,Dart VM 没有退出。大概是因为我在事件队列中仍有待处理的内容。

如何调试事件队列?我想看看是什么阻止了 Dart VM 在测试运行结束时退出。

您可以在自定义 TestConfiguration …

dart dart-unittest dart-async

6
推荐指数
1
解决办法
247
查看次数

标签 统计

dart ×1

dart-async ×1

dart-unittest ×1