Set*_*add 9 dart dart-unittest
我的单元测试需要一个需要异步运行的设置.也就是说,我需要等待设置在测试运行之前完成,但是设置处理Futures.
Set*_*add 11
使用Dart M3,该setUp功能可以选择返回a Future.如果setUp返回Future,则unittest框架将在运行各个测试方法之前等待Future完成.
这是一个例子:
group(('database') {
var db = createDb();
setUp(() {
return openDatabase()
.then((db) => populateForTests(db));
});
test('read', () {
Future future = db.read('foo');
future.then((value) {
expect(value, 'bar');
});
expect(future, completes);
});
});
Run Code Online (Sandbox Code Playgroud)
了解有关setUp的更多信息.
虽然 Seth 接受的答案是正确的,但以下示例可能更容易理解和重用。它返回 aFuture并在 Future 的异步工作函数中执行设置:
setUp(() {
return Future(() async {
await someFuture();
callSomeFunction();
await anotherFuture();
});
});
Run Code Online (Sandbox Code Playgroud)
测试用例将在最后一次调用anotherFuture()返回后调用。
| 归档时间: |
|
| 查看次数: |
727 次 |
| 最近记录: |