迁移空安全后 Flutter mockito 单元测试错误

时间:2021-05-18 16:27:15

标签: flutter mockito flutter-test

<块引用>

空*得到任何 包:mockito/src/mock.dart

一个参数匹配器,匹配在“this”位置传递的任何参数。

参数类型'Null*'不能分配给参数类型'Params'.dart(argument_type_not_assignable)

  test('should start listening when StartListening is called', () async {
final tStreamListHazardEntity =
    Stream<List<HazardEntity>>.fromIterable([tListHazardEntity]);

// arrange
when(mockHazardListen!.call(any))
    .thenAnswer((_) async => Right(tStreamListHazardEntity));
// assert
expectLater(
    bloc,
    emitsInOrder([
      isA<HazardMasterInitial>(),
      isA<Loading>(),
      isA<UpdateState>()
    ]));

// act
bloc!.add(StartListening());
await untilCalled(mockHazardListen!.call(any));

// assert
verify(mockHazardListen!.call(any)); });

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,在flutter null-safety迁移之后,使用mockito可以创建模拟而无需创建手动模拟。

<块引用>

受 mockito 启发的 Dart 模拟库。

Mocktail 专注于提供熟悉、简单的 API,用于在 Dart 中创建模拟(具有空安全性),无需手动模拟或代码生成。