Flutter 测试中的执行顺序混乱:Future<void> 在测试组之前运行

问题描述 投票:0回答:1

我的 flitter 项目中有一个测试文件夹,其中包含以下内容:

group ('beneficiary methods tests', () {

test('insert beneficiary test',()async{…}

test('update beneficiary test',()async{…}

test('get beneficiary test',()async{…}

});

await deleteDatabase('testingDB');

我期望的是逐行运行代码,这意味着数据库将在每次测试执行后删除,但是这并没有发生,测试依赖于数据库,并且它们失败并出现以下错误

SafLiteFfiException(error,
Bad state: This database
has already been closed})

await deleteDatabase('testingDB'); 移至组上方解决了错误,但我仍然想了解此行为的原因

flutter dart unit-testing testing automated-tests
1个回答
0
投票

您在那里的

async
似乎表明您在那里有异步代码。异步代码非常明确地不符合您对代码行按顺序执行的期望。您可能能够在组中使用
await
来确保在尝试删除数据库之前这些调用已完成。

要了解更多相关信息,请参阅:

© www.soinside.com 2019 - 2024. All rights reserved.