【问题标题】:Mockito generate an invalid override for Methods that have as parameter an other generated class (generated from Moor)Mockito 为具有其他生成类(从 Moor 生成)作为参数的方法生成无效覆盖
【发布时间】:2022-05-06 21:28:00
【问题描述】:

我们使用 moor 生成数据库实体。我们有一个数据库服务作为所有数据库访问的外观。我们有方法 Future<DatabaseEntry?> getDatabaseEntry(String entryId)。 DatabaseEntry 是从 moor 生成的。

在我们的测试中我们有这个

@GenerateMocks([DatabaseService])
void main() {...

在 mockito 的 mock 中我们发现:

@override
  _i10.Future<dynamic> getDatabaseEntry(String? entryId) =>

android studio 正确地告诉我们

'MockDatabaseService.getDatabaseEntry' ('Future<dynamic> Function(String?)') isn't a valid override of 'DatabaseService.getDatabaseEntry' ('Future<DatabaseEntry?> Function(String)').

我们认为这是因为 Mockito 在从 moor 生成 DatabaseEntry 类之前生成了模拟。我们如何更改构建运行程序的顺序,或者问题出在其他地方?

【问题讨论】:

    标签: flutter dart mockito build-runner


    【解决方案1】:

    我知道我的回答有点晚了,但就我而言,我遇到了类似的问题,这就是我解决它的方法。发生的事情是数据库调用是一个未来,我没有等待调用,所以编译器似乎不知道如果你不等待它,该方法将返回什么。一旦你这样做并再次生成模拟,你应该能够去。告诉我进展如何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-22
      • 2022-06-15
      • 2015-02-01
      • 2012-06-20
      • 1970-01-01
      • 2021-12-02
      • 2018-12-30
      • 1970-01-01
      相关资源
      最近更新 更多