Open2
AsyncNotifierのbuildをテストする
AsyncNotifierを継承したHogeNotifierがあったとして、
hoge_notifier_test.dart
final container = ProviderContainer();
container.listen(
hogeNotifierProvider,
fireImmediately: true,
);
の直後に検証コードを書くと非同期処理(build)が終わっていない。
hoge_notifier_test.dart
final container = ProviderContainer();
container.listen(
hogeNotifierProvider,
fireImmediately: true,
);
// この行を追加
await container.read(hogeNotifierProvider.future);
futureをawaitすることで、手動で最新の状態の解決を待つことができる。
Provider.futureはFutureProviderにもあり、RiverpodのサンプルコードだとRefreshIndicatorのonRefreshで非同期処理が終わるまで待つ(くるくるを出す)ために使われていたりする。