小编Ego*_*kov的帖子

如何在测试中正确覆盖 Riverpod 生成的提供程序?

我有存储库,并为该存储库生成提供程序,如下所示:

@riverpod
class Repository extends _$Repository {
  @override
  String? build() {
    return null;
  }

  Future<void> fetchData() async {
    state = "Hello World!";
  }
}
Run Code Online (Sandbox Code Playgroud)

我想测试我的应用程序。在测试中我想模拟这个存储库的提供者。但我有来自 Riverpod_lint 的消息:Providers which are overridden in a non-root ProviderContainer/ProviderScope should specify dependencies.

我的测试如下所示:

@riverpod
class MockedRepository extends _$MockedRepository implements Repository {
  @override
  String? build() {
    return null;
  }

  Future<void> fetchData() async {
    state = "Hello Mocked World!";
  }
}

void main() {
  testWidgets('override repositoryProvider', (tester) async {
    await tester.pumpWidget(
      ProviderScope(
        overrides: [
          repositoryProvider.overrideWith(() …
Run Code Online (Sandbox Code Playgroud)

flutter riverpod riverpod-generator

5
推荐指数
0
解决办法
427
查看次数

标签 统计

flutter ×1

riverpod ×1

riverpod-generator ×1