Houd tests deterministisch met expliciete containers.

De meeste testscenario's sluiten direct aan op de API's van ProviderContainer: read, invalidate, refresh, listen en overrides per provider-instantie.

Teststrategie

Verdeel tests in pure container-tests en widget-integratietests.

Puur Dart

Gebruik ProviderContainer rechtstreeks voor read/invalidate/refresh-assertions

Overrides

Overschrijf per provider-instantie met overrideWith / overrideWithValue

Widget-tests

Injecteer een externe container en ruim deze expliciet op

Tip

ProviderContainer.listen verzendt de initiële waarde niet, tenzij fireImmediately: true is opgegeven.

Testcommando en checklist

Voer de volledige testsuite uit en controleer op eventuele timer-lekken in autoDispose-scenario's.

Commando

Checklist

- Ruim de extern geïnjecteerde ProviderContainer op in tearDown.
- Gebruik fireImmediately: true wanneer je listener-assertions de initiële status nodig hebben.
- Verhoog bij autoDispose-tests de fake tijd tot voorbij de autoDisposeDelay.

Voorbeeld: overschrijven per argument

family-achtige providers worden overschreven per instantie die is gemaakt via je factory-functie.

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();
Dit patroon weerspiegelt de README en de upstream-tests in de miniriverpod-repository.
Widget-tests moeten widgets demonteren (unmounten) voordat externe containers worden opgeruimd (disposed).
Gebruik fake_async om autoDispose-vertragingen en keepAlive-gedrag te valideren.

Volgende stappen

API-referentie

Bekijk snel de handtekeningen voor ProviderContainer, Ref, AsyncValue en mutation-API's.

Open API-referentie

Terug naar overzicht

Keer terug naar het volledige overzicht van de documentatie voor miniriverpod.

Open overzicht