Weka majaribio yawe thabiti kwa kontena wazi.

Matukio mengi ya majaribio yanaendana moja kwa moja na API za ProviderContainer: read, invalidate, refresh, listen, na uingizwaji kwa kila mfano wa provider.

Test Strategy

Gawa majaribio kuwa majaribio safi ya kontena na majaribio ya ujumuishaji ya wijeti.

Pure Dart

Tumia ProviderContainer moja kwa moja kwa uthibitisho wa read/invalidate/refresh

Overrides

Badilisha kila mfano wa provider kwa overrideWith / overrideWithValue

Widget tests

Ingiza kontena la nje na uli-dispose kwa uwazi

Tip

ProviderContainer.listen haitoi thamani ya awali isipokuwa fireImmediately: true imebainishwa.

Amri ya majaribio na orodha ya ukaguzi

Endesha seti kamili na hakikisha hakuna uvujaji wa timer unaobaki katika matukio ya autoDispose.

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.

Mfano: uingizwaji kwa kila hoja

Watoa huduma wa aina ya family hubadilishwa kwa kila mfano unaoundwa na kazi yako ya factory.

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();
Mfumo huu unaendana na README na majaribio ya juu katika hazina ya miniriverpod.
Majaribio ya wijeti yanapaswa kuondoa wijeti kabla ya kutupa kontena za nje.
Tumia fake_async kuthibitisha ucheleweshaji wa autoDispose na tabia ya keepAlive.

Hatua zinazofuata

API Reference

Fungua saini za haraka za ProviderContainer, Ref, AsyncValue, na API za mutation.

Open API Reference

Back to Overview

Rudi kwenye ramani kamili ya nyaraka za miniriverpod.

Open Overview