Haltu prófum ákvarðanlegum með skýrum container-um.

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

Prófunarstefna

Skiptu prófum í hrein container-próf og widget-samþættingarpróf.

Hreint Dart

Notaðu ProviderContainer beint fyrir read/invalidate/refresh staðfestingar

Overrides

Override-aðu hvert provider-tilvik með overrideWith / overrideWithValue

Widget-próf

Sprautaðu inn ytra container og losaðu það skýrt

Ábending

ProviderContainer.listen sendir ekki upphafsgildi nema fireImmediately: true sé tilgreint.

Prófskipun og gátlisti

Keyrðu allt prófasafnið og staðfestu að engir biðtímaleikar séu í autoDispose-aðstæðum.

Skipun

Gátlisti

- Losaðu ProviderContainer sem er sprautað inn utan frá í tearDown.
- Notaðu fireImmediately: true þegar listener-staðfestingar þurfa upphafsstöðu.
- Fyrir autoDispose-próf skaltu færa fake-tíma fram yfir autoDisposeDelay.

Dæmi: override eftir argumenti

Family-líkir provider-ar eru override-aðir 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')),
  ],
);

// staðfesting og hreinsun
container.dispose();
Þetta mynstur speglar README og upstream-prófanir í miniriverpod repository.
Widget-próf ættu að aftengja widget-a áður en ytri container eru losuð.
Notaðu fake_async til að staðfesta autoDispose-tafir og keepAlive-hegðun.

Næstu skref

API-tilvísun

Opnaðu fljótlegar undirskriftir fyrir ProviderContainer, Ref, AsyncValue og mutation-API.

Opna API-tilvísun

Til baka í yfirlit

Farðu aftur í heildarkort skjala fyrir miniriverpod.

Opna yfirlit