Озмоишҳоро бо контейнерҳои возеҳ муайяншуда устувор нигоҳ доред.

Аксари сенарияҳои озмоишӣ бевосита ба API-ҳои ProviderContainer мувофиқат мекунанд: read, invalidate, refresh, listen ва override барои ҳар намунаи provider.

Test Strategy

Озмоишҳоро ба озмоишҳои холиси контейнер ва озмоишҳои ҳамгироии виджет ҷудо кунед.

Pure Dart

Барои санҷишҳои read/invalidate/refresh бевосита аз ProviderContainer истифода баред

Overrides

Барои ҳар намунаи provider бо overrideWith / overrideWithValue override кунед

Widget tests

Контейнери берунаро ворид кунед ва онро ошкоро озод кунед

Tip

ProviderContainer.listen-и ибтидоиро намефиристад, агар fireImmediately: true нишон дода нашавад.

Фармон ва рӯйхати санҷиш

Маҷмӯаи пурраро иҷро кунед ва боварӣ ҳосил намоед, ки дар сенарияҳои autoDispose ягон timer-и дар интизорӣ монда нест.

Command

Checklist

- Dispose externally injected ProviderContainer in tearDown.
- Use fireImmediately: true when your listener assertions need initial state.
- For autoDispose tests, advance fake time beyond autoDisposeDelay.

Мисол: override барои ҳар аргумент

Provider-и ба family монанд барои ҳар намунае, ки аз функсияи фабрикаатон сохта мешавад, override карда мешавад.

class ProductById extends Provider<Product> {
  ProductById(this.id) : super.args((id,));
  final String id;

  @override
  Product build(ref) {
    final repo = ref.watch(productRepoProvider);
    return repo.fetch(id);
  }
}

final container = ProviderContainer(
  overrides: [
    productByIdProvider('a').overrideWithValue(const Product(id: 'a', name: 'stub')),
  ],
);

// assert and cleanup
container.dispose();
Ин намуна README ва озмоишҳои болоии анбори miniriverpod-ро такрор мекунад.
Озмоишҳои виджет бояд пеш аз озод кардани контейнерҳои беруна виджетҳоро аз дарахт бардоранд.
Барои санҷидани таъхирҳои autoDispose ва рафтори keepAlive аз fake_async истифода баред.

Қадамҳои баъдӣ

API Reference

Имзоҳои кӯтоҳ барои ProviderContainer, Ref, AsyncValue ва API-ҳои тағйирдиҳӣ-ро кушоед.

Open API Reference

Back to Overview

Ба харитаи пурраи ҳуҷҷатҳои miniriverpod баргардед.

Open Overview