unit-testing - 如何防止从使用dart中的ExpectAsync的单元测试进行?

标签 unit-testing asynchronous dart

我有一些单元测试,它们全部异步执行。但是事实证明,即使我在单元测试中多次调用ExpectAsync(有时这可能涉及到对ExpectAsync的多个嵌套异步调用),单元测试仍然会退出并调用tearDown方法,这实际上切断了我的工作。运行异步测试的基础架构。我想做的是让我的测试运行并等待所有期望(无论是否异步)都完成,然后再继续进行下一个测试。这有可能实现吗?我的单元测试一直通过的原因是因为tearDown中的清理代码也正在执行异步,但是理想情况下,它应该可以异步或立即清理。

最佳答案

我们需要查看您的代码才能查明确切的问题。

您很有可能没有足够地调用expectAsync。在您的代码等待异步回调的任何时间,必须至少有一个未完成的expectAsync函数正在等待调用。

通过创建一个在测试完成时调用的“完成”函数,可以将其全部缩减为一个expectAsync调用:

test("ladadidadida", () {
  var done = expectAsync((){});
  something.then((a) { return somethingElse(); })
           .then((b) { expect(a, b); done(); })
});

关于unit-testing - 如何防止从使用dart中的ExpectAsync的单元测试进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27072050/

相关文章:

unit-testing - 如何通过模拟依赖关系来测试微服务?

javascript - 粘贴到 Canvas 中

javascript - 如何在 AngularDart 中访问 DOM?

android.content.res.Resources$NotFoundException : no such label

php - 带约束的 Symfony2 单元测试表单

unit-testing - Grails 单元测试 Buggy 动态查找器

ios - CorePlot 使用从 Web 服务检索到的数据绘制图形

javascript - 使用 Google Cloud Functions Node.JS 等待多个异步函数的正确方法

c# - 如何同步浏览网页浏览器?

android - 从 Flutter 的方法 channel 访问 Kotlin 中的参数数据