AudioPeel-Video-to-Audio-Converter

Testing Guide

Quick Start

# Run all tests
flutter test

# Run with verbose output
flutter test --reporter expanded

# Run with coverage report
flutter test --coverage
genhtml coverage/lcov.info -o coverage/html
open coverage/html/index.html

Test Structure

test/
├── models/
│   └── conversion_task_test.dart      # ConversionTask + ConversionStatus
├── providers/
│   ├── conversion_provider_test.dart  # ConversionProvider unit tests
│   ├── history_provider_test.dart     # HistoryProvider with mocked DB
│   └── settings_provider_test.dart    # SettingsProvider with mock prefs
├── services/
│   └── database_service_test.dart     # AudioFile, AudioQuality models
└── utils/
    ├── debouncer_test.dart            # Debouncer with fake_async
    ├── file_utils_test.dart           # FileUtils (extension check, naming)
    ├── format_utils_test.dart         # FormatUtils (size, duration, date)
    └── validation_utils_test.dart     # ValidationUtils (file name rules)

Test Coverage by Area

Area Tests Coverage
Models (AudioFile, AudioQuality, ConversionTask) 19 ~95%
Utils (Format, File, Validation, Debouncer) 30 ~90%
Providers (Settings, History, Conversion) 28 ~80%
Services (Database) 11 ~70%
Total 88 ~85%

Mocking Strategy

Running Specific Tests

# Single file
flutter test test/utils/format_utils_test.dart

# By name pattern
flutter test --name "fileSize"

# Only models
flutter test test/models/

Manual Testing Checklist

Conversion Flow

Error Scenarios

History

Settings

Ads

Edge Cases