debugMockDependency<Dependency> method

void debugMockDependency<Dependency>(
  1. Dependency value
)

Overrides read to mock its behavior in development.

This does nothing in release mode and is useful only for test purpose.

A typical usage would be:

class MyServiceMock extends Mock implements MyService {}

test('mock dependency', () {
  final myStateNotifier = MyStateNotifier();
  myStateNotifier.debugMockDependency<MyService>(MyServiceMock());
});

Implementation

void debugMockDependency<Dependency>(Dependency value) {
  assert(_debugIsNotifierMounted(), '');
  assert(() {
    final previousLocator = read;
    read = <Target>() {
      assert(_debugIsNotifierMounted(), '');
      if (Dependency == Target) {
        return value as Target;
      }
      return previousLocator<Target>();
    };
    return true;
  }(), '');
}