Flutter test generator (Flutter Test Gen)

pub
package likes

A CLI tool to automatically generate unit tests for Flutter and Dart projects.

flutter_test_gen analyzes Dart files and generates structured test templates, helping developers quickly start writing tests without manually creating boilerplate code.

Features

  • Generate tests for classes and top-level functions
  • Automatically create the correct test/ folder structure
  • Append missing tests to existing test files
  • Restore deleted tests inside groups
  • Restore deleted groups
  • Prevent duplicate test generation
  • Supports:
    • async methods
    • static methods
  • Adds tags to each test
  • Skips:
    • private methods
    • mixins
    • extensions
  • CLI help command

Installation

Add the package to your project:

dev_dependencies:
  flutter_test_gen: ^0.0.1
  mocktail: ^1.0.0 # only when you need to mock dependencies

Then run:

dart pub get

Usage

Generate tests for a Dart file:

dart run flutter_test_gen generate user_service

You can also specify a full file path:

dart run flutter_test_gen generate lib/services/user_service.dart

For convenience, the command also works without generate:

dart run flutter_test_gen user_service

CLI Commands

Generate tests

dart run flutter_test_gen generate <FILE_NAME>

Default behavior is append missing tests.

Append missing tests

dart run flutter_test_gen generate <FILE_NAME> --append

Adds only tests that do not already exist.

Overwrite existing tests

dart run flutter_test_gen generate <FILE_NAME> --overwrite

Recreates the test file completely.

Show help

dart run flutter_test_gen --help

Example

Source file

class UserService {
  int getAge() {
    return 30;
  }

  static int add(int a, int b) {
    return a + b;
  }
}

Generated test

group('UserService | lib/user_service.dart', () {
  late UserService service;

  setUp(() {
    service = UserService();
  });

  test('getAge', () {
    // Arrange

    // Act
    final result = service.getAge();

    // Assert
    expect(result, isNotNull);
  });

  test('add', () {
    // Arrange

    // Act
    final result = UserService.add(1, 1);

    // Assert
    expect(result, isNotNull);
  });
});

Behavior

The generator:

  • Creates test files inside the test/ directory
  • Groups tests by class name
  • Restores deleted tests if they are removed
  • Restores deleted groups if they are removed
  • Prevents duplicate test generation
  • Does not modify existing test structure

Requirements

  • Dart SDK
  • Flutter project (recommended)

Quick Demo

Generate tests for a service:

dart run flutter_test_gen generate user_service

Output:

✓ Found Dart file
✓ Parsed methods
✓ Generated test templates
✓ Appended missing tests

Project Structure

flutter_test_gen
 ├── bin/
 │   └── flutter_test_gen.dart
 ├── lib/
 │   ├── flutter_test_gen.dart
 │   └── src/
 │       ├── generator/
 │       ├── parser/
 │       ├── models/
 │       └── utils/
 ├── example/
 ├── test/
 ├── README.md
 ├── LICENSE
 └── pubspec.yaml

Roadmap

Planned improvements:

  • smarter test data generation
  • automatic mock generation
  • test coverage integration
  • watch mode for automatic test generation

Contributing

Contributions are welcome.

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Open a pull request

License

MIT License

Repository

github.com/braglath/flutter_test_gen

Author

Built by Flutter Zone to make Flutter unit testing faster and easier.

Keywords

Flutter test generator
Dart test generator
Flutter unit test automation
Flutter testing CLI tool

Libraries

flutter_test_gen
Support for doing something awesome.