ازموینې د روښانه 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();
راتلونکې ګامونه
API Reference
د ProviderContainer، Ref، AsyncValue، او mutation APIs چټک signatures پرانیزئ.
Open API Reference