hive 扑动,Mockito:如何用命名参数模拟一个方法?

wbrvyc0a  于 2023-03-18  发布在  Hive
关注(0)|答案(1)|浏览(247)

我正在尝试测试一个使用配置单元库存储数据的数据库类。
我写了这个代码测试:

// import ...
import 'my_datasource_hive_test.mocks.dart';

@GenerateNiceMocks([
  MockSpec<BoxCollection>()
])

void main() {
  test(
    'MyDatasourceHive Constructor',
    () {
      // Assign
      final mockMyCollection = MockBoxCollection();
      final datasource = MyDatasourceHive(
        collection: mockMyCollection,
      );
    },
  );

然后运行生成MockBoxCollection类的命令:
flutter pub run build_runner build
当我运行测试时,我有下一个错误:
The parameter 'boxCreator' of the method 'MockBoxCollection.openBox' has type 'CollectionBox/*1*/<V> Function(String, BoxCollection)?', which does not match the corresponding type, 'CollectionBox/*2*/<V> Function(String, BoxCollection)?', in the overridden method, 'BoxCollection.openBox'.

vd2z7a6w

vd2z7a6w1#

您收到的错误表明MockBoxCollection.openBoxBoxCollection.openBox中的参数不匹配。请尝试以下操作:

  • 使用flutter pub upgrade mockito命令更新mokito软件包。
  • 如果这不能解决问题,可以尝试使用其他库,如mocktail
  • 另一个建议是通过参考Hive的文档更新MockBoxCollection以匹配BoxCollection接口。

相关问题