ازموینې د روښانه containers سره deterministic وساتئ.

د ازموینې ډېری سناریوګانې په مستقیم ډول د ProviderContainer APIs ته map کېږي: read، invalidate، refresh، listen، او د provider instance له مخې overrides.

Test Strategy

ازموینې په خالص container tests او widget integration tests ووېشئ.

Pure Dart

د read/invalidate/refresh assertions لپاره مستقیم ProviderContainer وکاروئ

Overrides

د overrideWith / overrideWithValue په وسیله د provider instance له مخې override وکړئ

Widget tests

خارجي container داخل کړئ او په څرګنده توګه یې dispose کړئ

Tip

ProviderContainer.listen لومړنی value نه خپروي، تر څو fireImmediately: true نه وي مشخص شوی.

د ازموینې امر او checklist

ټول suite وچلوئ او وګورئ چې په autoDispose سناریوګانو کې کوم pending timer leak نشته.

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.

بېلګه: د argument له مخې override

د کورنۍ په څېر providerونه د هغه هر instance لپاره override کېږي چې ستاسو د factory function لخوا جوړ شي.

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();
دا الګو د miniriverpod په repository کې README او upstream tests تعقیبوي.
Widget tests باید د خارجي containers د dispose کولو نه مخکې widgets unmount کړي.
د autoDispose ځنډونو او keepAlive چلند د تایید لپاره fake_async وکاروئ.

راتلونکې ګامونه

API Reference

د ProviderContainer، Ref، AsyncValue، او mutation APIs چټک signatures پرانیزئ.

Open API Reference

Back to Overview

د miniriverpod بشپړ documentation map ته بېرته ورشئ.

Open Overview