如何在Dart中等待单元测试中的异步设置?
我的单元测试需要一个需要异步运行的设置。也就是说,在运行测试之前,我需要等待安装程序完成,但安装程序处理的是未来。对于Dart M3,如何在Dart中等待单元测试中的异步设置?,dart,dart-unittest,Dart,Dart Unittest,我的单元测试需要一个需要异步运行的设置。也就是说,在运行测试之前,我需要等待安装程序完成,但安装程序处理的是未来。对于Dart M3,setup函数可以选择返回一个Future。如果安装程序返回未来,unittest框架将等待未来完成,然后再运行各个测试方法 以下是一个例子: 组((“数据库”){ var db=createDb(); 设置((){ 返回openDatabase() 。然后((db)=>populateForTests(db)); }); 测试('读取',(){ Future=d
setup
函数可以选择返回一个Future
。如果安装程序返回未来,unittest框架将等待未来完成,然后再运行各个测试方法
以下是一个例子:
组((“数据库”){
var db=createDb();
设置((){
返回openDatabase()
。然后((db)=>populateForTests(db));
});
测试('读取',(){
Future=db.read('foo');
future.then((值){
expect(值,'bar');
});
期待(未来,完成);
});
});
了解更多信息。虽然赛斯接受的答案是正确的,但下面的示例可能更容易理解和重用。它返回一个
Future
,并在Future的异步工作函数中执行设置:
setUp(() {
return Future(() async {
await someFuture();
callSomeFunction();
await anotherFuture();
});
});
最后一次调用anotherFuture()
返回后,将调用测试用例