Робіть тести детермінованими з явними контейнерами.

Більшість сценаріїв тестування безпосередньо відповідають API ProviderContainer: read, invalidate, refresh, listen і overrides для кожного екземпляра provider.

Test Strategy

Розділіть тести на чисті контейнерні тести та інтеграційні тести віджетів.

Pure Dart

Використовуйте ProviderContainer безпосередньо для перевірок read/invalidate/refresh

Overrides

Перевизначайте по екземпляру provider за допомогою overrideWith / overrideWithValue

Widget tests

Впроваджуйте зовнішній контейнер і явно звільняйте його

Tip

ProviderContainer.listen не видає початкове значення, якщо не вказано fireImmediately: true.

Команда тестування і чеклист

Запустіть весь набір і переконайтеся, що в сценаріях 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.

Приклад: override за аргументом

Провайдери сімейного типу перевизначаються для кожного екземпляра, створеного вашою фабричною функцією.

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();
Цей шаблон повторює README та upstream-тести в репозиторії miniriverpod.
Тести віджетів мають демонтовувати віджети перед видаленням зовнішніх контейнерів.
Використовуйте fake_async, щоб перевірити затримки autoDispose та поведінку keepAlive.

Наступні кроки

API Reference

Відкрийте швидкі сигнатури для ProviderContainer, Ref, AsyncValue і API mutations.

Open API Reference

Back to Overview

Поверніться до повної карти документації miniriverpod.

Open Overview