如何在 Dart 中测试 void 函数?

shu*_*ter 1 testing unit-testing dart flutter flutter-test

我是 Dart/Flutter 单元测试的新手,我想为 void 函数编写一个测试。当函数返回某些内容时,我正在编写这样的测试:

test('Gets user save', () async {
      final userSave = await mockSource!.getUserSave();
      expect(userSave!.age, equals(20));
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,expect可以使用上面的函数,因为getUserSave函数返回用户模型。

如何检查如下所示的 void/Future 函数的测试是否通过或失败?我无法使用,expect因为它没有返回值。

Future<void> clearUserSave() async {
    DatabaseClient mockDBClient = MockDatabaseClientImpl();
    mockDBClient.clear();
}
Run Code Online (Sandbox Code Playgroud)

我使用flutter_testmockito进行测试。

Abh*_*ire 5

测试返回 void 的函数:

  expect(
      () async => await functionThatReturnsVoid(),
      isA<void>(),
    );
Run Code Online (Sandbox Code Playgroud)