freezed_factories 2.0.0 copy "freezed_factories: ^2.0.0" to clipboard
freezed_factories: ^2.0.0 copied to clipboard

Create test factories for your Freezed classes easily

Build Status Pub

freezed_factories #

Create test factories for your Freezed classes easily.

Install #

To use freezed_factories you will need the generator and the annotation package.

For a Flutter project:

flutter pub add freezed_factories_annotation
flutter pub add dev:freezed_factories

For a Dart project:

dart pub add freezed_factories_annotation
dart pub add dev:freezed_factories

How to use #

To generate a factory for class, create a class, annotate it with @FreezedFactory(FreezedClassName), add the mixin, override the _defaults getter and import the part file.

Also you can create methods to generate different states of the object.

import 'package:faker/faker.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:freezed_factories_annotation/freezed_factories_annotation.dart';

part 'person.factory.dart';
part 'person.freezed.dart';

@freezed
class Person with _$Person {
  const factory Person({
    required String firstName,
    required String lastName,
    int? age,
  }) = _Person;

  static PersonFactory get factory => PersonFactory();
}

@FreezedFactory(Person)
class PersonFactory with _$PersonFactory {
  @override
  Person get _defaults => Person(
    firstName: faker.person.firstName(),
    lastName: faker.person.lastName(),
    age: faker.randomGenerator.integer(99),
  );

  PersonFactory adult() {
    return state((state) => state(
      age: faker.randomGenerator.integer(99, min: 18),
    ));
  }
}

In the example above, faker is used to generate random data.

1
likes
150
points
263
downloads

Publisher

verified publisheridoctus.com

Weekly Downloads

Create test factories for your Freezed classes easily

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

analyzer, build, freezed, freezed_factories_annotation, source_gen

More

Packages that depend on freezed_factories