我有一些单元测试都是异步执行的。但事实证明,即使我在我的单元测试中多次调用expectAsync(有时这可能涉及到expectAsync的多个嵌套异步调用),单元测试仍会退出并调用tearDown方法,这有效地切断了我的我的异步测试正在运行的基础架构。我想要发生的是我的测试运行并等到所有期望,异步与否,在继续下一次测试之前完成。这有可能实现吗?我的单元测试到目前为止的原因是因为tearDown中的清理代码也执行异步,但理想情况下它应该工作天气它会异步或立即清理。
答案 0 :(得分:2)
我们需要看到您的代码能够找出确切的问题。
很可能你没有给expectAsync
打电话。在您的代码等待异步回调的任何时候,必须至少有一个未完成的expectAsync
函数等待调用。
您可以通过创建"完成"将所有内容减少到一个expectAsync
来电。测试完成时调用的函数:
test("ladadidadida", () {
var done = expectAsync((){});
something.then((a) { return somethingElse(); })
.then((b) { expect(a, b); done(); })
});