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();
Hatua zinazofuata
API Reference
Fungua saini za haraka za ProviderContainer, Ref, AsyncValue, na API za mutation.
Open API Reference