Flutterのテストコードを実装する上で、クラスをモック化するのにmockitoを使うと思います。
通常のクラスであれば特に気にする必要はないのですが、graphql_codegenで生成したクラスを更に、mokitoでモック化したクラスにするためには、build_runnerの設定を変更する必要があります。
具体的に、build.yamlに以下のような記述を追加します。
global_options:
graphql_codegen:
runs_before:
- mockito|mockBuilder
この記述がない場合、mockitoがgraphql_codegenで生成したクラスを読み込むことができず、意図したモック化ができません。
例えば以下のようなコードの場合、返却値の型は Future<Query$User>
ですが、ビルドの設定を変更していない場合、モック化したクラスでは返却値の型は Future<dynamic>
となってしまいます。
Future<Query$User> getUser(int id) async {
final client = GraphQLClient(
cache: GraphQLCache(),
link: HttpLink('https://example.com/graphql'),
);
final result = await client.query$User(
Options$Query$User(
variables: Variables$Query$User(
id: id,
),
),
);
return result.parsedData!;
}