riverpod_container_asyncを使用したコードの Unit Test 作成を支援するテストライブラリである。 ProviderContainer の非同期削除機能、依存関係の自動解決、テスト用のプロバイダー管理機能を提供する。

Features

  • テスト用拡張機能: ProviderContainer に対するテスト専用の拡張メソッドを提供
  • 初期化タスク待機: riverpod_container_async の初期化タスクを自動的に待機し、テスト実行前にプロバイダーを完全に準備
  • 依存関係の自動解決: testReady でプロバイダーの依存グラフを再帰的に構築し、すべての依存プロバイダーを準備完了状態にする
  • 簡単なインスタンス取得: testGet で型安全にプロバイダーからインスタンスを取得

Getting started

pubspec.yamlの dev_dependencies に以下を追加する:

dev_dependencies:
  riverpod_container_async_test: ^1.0.0

Usage

テスト用の ProviderContainer を作成し、プロバイダーをテストする:

import 'package:riverpod_container_async_test/riverpod_container_async_test.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  group('Provider tests', () {
    test('should create provider container with async disposal', () async {
      final container = // ProviderContainer作成

      // プロバイダーの値を取得
      final value = container.testGet(myProvider);
      expect(value, isNotNull);

      // テスト終了時に自動的にdisposeAsync()が呼ばれる
    });

    test('should ready provider with dependencies', () async {
      final container = // ProviderContainer作成

      // 依存関係を解決してプロバイダーを準備完了状態にする
      final service = await container.testReady(myServiceProvider);
      expect(service.isReady, isTrue);
    });
  });
}

Additional information

このパッケージはriverpod_container_asyncを使用したアプリケーションの Unit Test 作成を簡単にするために作られた。 特に ProviderContainer の非同期削除機能により、テスト間でのリソースリークを防ぐことができる。 バグ報告や機能要求はGitHubで受け付けている。