有没有办法让 mockito 为 Flutter 项目中的集成测试生成模拟

Is there a way to let mockito generate mocks for integration tests in a Flutter project

Mockito 为 @GenerateMocks 注释中的所有 类 列表生成模拟。它对 test 文件夹中的测试这样做,但对 integration_test 文件夹中的测试不这样做。我该如何更改?

TL;DR

将包含以下内容的 build.yaml 文件添加到您的项目根文件夹。

targets:
  $default:
    sources:
      - $package$
      - lib/$lib$
      - lib/**.dart
      - test/**.dart
      - integration_test/**.dart
    builders:
      mockito|mockBuilder:
        generate_for:
          - test/**.dart
          - integration_test/**.dart

说明

需要 generate_forsources 来告诉 mockBuilder 应该处理哪些文件。

generate_for 配置只是构建器使用的所有文件的一个子集。但默认情况下,这些文件不包含 integration_test 文件夹。要修改它,我们可以手动列出源文件。我们必须包含默认来源 $package$lib/$lib$,否则我们会收到警告。

通过包含任何文件夹 - 在我们的例子中 'integration_test' 它也将可供 generate_for 使用。

以下是 build_config/README.md 的摘录:

  • generate_for: String 或 Map 的列表,可选:。内的文件子集 目标的 sources 应该应用此生成器。参见 sources 上面的配置如何配置这个。

和:

  • sources:字符串列表或映射,可选。内的文件集 构成这个目标的包。文件是使用 glob 语法指定的。如果一个 使用字符串列表,它们被认为是 'include' glob。如果地图是 used 只能有键 includeexclude。任何匹配的文件 include 中的任何 glob 而 exclude 中没有任何 glob 被认为是 目标。当省略 include 时,每个文件都被认为是匹配项。