Haltu prófunum ákvörðuðum með skýrum gámum.

Flestar prófunaraðstæður kortleggjast beint á ProviderContainer API: read, invalidate, refresh, listen og overrides á hverju provider tilviki.

Test Strategy

Skiptu prófum í hrein gámpróf og samþættingarpróf widgeta.

Pure Dart

Notaðu ProviderContainer beint fyrir read/invalidate/refresh fullyrðingar

Overrides

Yfirskrifaðu eftir provider tilviki með overrideWith / overrideWithValue

Widget tests

Sprautaðu ytri gámnum og dispose-aðu honum skýrt

Tip

ProviderContainer.listen gefur ekki út upphafsgildi nema fireImmediately: true sé tilgreint.

Prófskipun og gátlisti

Keyrðu allan pakkann og staðfestu að engar biðandi timer-lekanir séu í autoDispose atburðarásum.

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.

Dæmi: override eftir rökum

Fjölskyldulíkar providers eru yfirskrifaðar fyrir hvert tilvik sem factory fallið þitt býr til.

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();
Þetta mynstur endurspeglar README og upstream-próf í miniriverpod geymslunni.
Widgetpróf ættu að losa widget áður en ytri gámum er eytt.
Notaðu fake_async til að staðfesta autoDispose tafir og keepAlive hegðun.

Næstu skref

API Reference

Opnaðu hraðar undirskriftir fyrir ProviderContainer, Ref, AsyncValue og mutation API.

Open API Reference

Back to Overview

Farðu aftur á fulla skjalamynd miniriverpod.

Open Overview