bloc_signals_test 0.1.3 copy "bloc_signals_test: ^0.1.3" to clipboard
bloc_signals_test: ^0.1.3 copied to clipboard

Declarative unit testing utilities for BlocSignal and CubitSignal.

โšก bloc_signals_test #

"With the rigor of Bloc and the flex and speed of Signal"

Declarative unit testing utilities for bloc_signals and CubitSignal instances.

bloc_signals_test provides blocSignalTest, a declarative helper tailored specifically for synchronous reactive signal state propagation, state de-duplication, and observer isolation.


๐ŸŒ Ecosystem Packages #

Package Purpose Pub.dev Link
bloc_signals Core pure-Dart state containers, event registry, & VM Service telemetry ๐Ÿ“ฆ pub.dev
bloc_signals_flutter Flutter UI widgets (BlocSignalProvider, BlocSignalBuilder, BlocSignalListener, BlocSignalConsumer, BlocSignalSelector) ๐Ÿ“ฆ pub.dev
bloc_signals_riverpod Bidirectional Riverpod interop adapters (toBlocSignal(ref), toProvider()) ๐Ÿ“ฆ pub.dev
bloc_signals_hydrate Persistent state storage (HydratedCubitSignal, HydratedBlocSignal) ๐Ÿ“ฆ pub.dev
bloc_signals_devtools Dedicated Flutter DevTools extension inspector UI ๐Ÿ“ฆ pub.dev
bloc_signals_test Declarative unit testing helpers (blocSignalTest) ๐Ÿ“ฆ pub.dev
bloc_signals_lint Static analysis lints & IDE quick-fixes ๐Ÿ“ฆ pub.dev
otel_bloc_signals OpenTelemetry tracing observers ๐Ÿ“ฆ pub.dev

โšก Key Features #

  • ๐ŸŽฏ Declarative Assertions: Verify emitted states in exact order using expect.
  • โฑ๏ธ Async Support: Await asynchronous event handlers or timers using wait.
  • โญ๏ธ State Skipping: Skip initial emissions using skip.
  • ๐Ÿšจ Error Testing: Verify exceptions caught in onError using errors.
  • ๐Ÿงน Automatic Cleanup: Guarantees observer restoration and bloc.close() post-test.

๐Ÿš€ Getting Started #

Add bloc_signals_test to your pubspec.yaml:

dev_dependencies:
  bloc_signals_test: ^0.1.0
  test: ^1.24.0

๐Ÿ’ก Quick Examples #

1. Cubit Unit Test (blocSignalTest) #

import 'package:bloc_signals_test/bloc_signals_test.dart';
import 'package:test/test.dart';

void main() {
  group('CounterCubit', () {
    blocSignalTest<CounterCubit, int>(
      'emits [1] when increment is called',
      build: CounterCubit.new,
      act: (cubit) => cubit.increment(),
      expect: () => [1],
    );
  });
}

2. Async Event Bloc Test (wait & errors) #

blocSignalTest<DataBloc, DataState>(
  'emits [DataLoading, DataLoaded] when FetchData succeeds',
  build: () => DataBloc(repository: mockRepo),
  act: (bloc) => bloc.add(FetchData()),
  wait: const Duration(milliseconds: 100),
  expect: () => [
    const DataLoading(),
    const DataLoaded('sample_data'),
  ],
);

๐Ÿ“œ License #

MIT License. See LICENSE for details.

0
likes
0
points
347
downloads

Publisher

verified publisherstonehenge.com

Weekly Downloads

Declarative unit testing utilities for BlocSignal and CubitSignal.

Repository (GitHub)
View/report issues

Topics

#testing #unit-testing #bloc #signals

License

unknown (license)

Dependencies

bloc_signals, meta, test

More

Packages that depend on bloc_signals_test