我是Dart/Flutter单元测试的新手,我想为一个void函数写一个测试,当函数返回一些东西时,我会写一个如下的测试:
test('Gets user save', () async {
final userSave = await mockSource!.getUserSave();
expect(userSave!.age, equals(20));
});
在类似上面的场景中,可以使用expect
,因为getUserSave
函数返回用户模型。
检查一下void/Future函数的测试通过还是失败怎么样?我不能使用expect
,因为它不返回值。
Future<void> clearUserSave() async {
DatabaseClient mockDBClient = MockDatabaseClientImpl();
mockDBClient.clear();
}
我使用flutter_test
和mockito
进行测试。
3条答案
按热度按时间a11xaf1n1#
通常
void
函数会产生某种副作用,在编写void
函数的测试时,我会在调用函数之前和之后检查void
函数所影响的状态,以确保所需的副作用已经发生。在这个特定的例子中,你在
DatabaseClient
上调用clear
,我不知道DatabaseClient
api的细节,但是我会在调用clear
之前构造一个测试,其中客户端包含一些数据,然后在调用clear
之后检查数据是否不再存在。大致是这样的:
tjjdgumg2#
你可以在方法中添加一个可以为空的变量并赋值,调用方法后检查这个变量是否为NotNull,如下所示:
zwghvu4y3#
测试返回void的函数: