FakeNetworkHandler class

In-memory NetworkHandler double for unit-testing repositories and cubits without Dio, adapters, or a registry.

Queue the results your test expects, in call order:

final fake = FakeNetworkHandler();
final repo = UserRepository(fake, FakeApi());

fake.enqueueOk(UserDto(id: 1));
expect((await repo.getUser(1)).isOk, isTrue);

fake.enqueueErr(const UserNotFoundFailure());
expect((await repo.getUser(2)).failureOrNull, isA<UserNotFoundFailure>());

safeCall never runs the request closure — the queued result is returned directly. An empty queue throws a descriptive StateError unless defaultResult is set (useful for "every call fails offline" tests).

Inheritance

Constructors

FakeNetworkHandler({Result? defaultResult})

Properties

callCount int
Number of safeCall invocations so far.
getter/setter pair
defaultResult Result?
Returned when the queue is empty; null means an empty queue throws.
getter/setter pair
enableDebugLogging bool
Whether caught errors are logged with debugPrint.
getter/setter pairinherited
errorRegistry ErrorRegistry
The registry consulted for every mapping decision of this handler.
finalinherited
hashCode int
The hash code for this object.
no setterinherited
onFailure FailureObserver?
Called for every Err this handler produces from a caught exception. Exceptions thrown by the observer itself are swallowed — observability must never break error propagation.
getter/setter pairinherited
remaining int
Results queued but not yet consumed.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

enqueue(Result result) → void
Queues result for the next call.
enqueueErr(Failure failure) → void
Queues a failure.
enqueueOk(Object? value) → void
Queues a success carrying value.
enqueueOkAll(Iterable<Object?> values) → void
Queues successes carrying each of values, in order.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
reset() → void
Drops everything queued and resets callCount — for setUp/tearDown when one fake is shared across tests.
safeCall<T>(Future<T> request(), {Result<T>? onEndpointError(DioException)?}) Future<Result<T>>
Executes request and maps any thrown error to an Err via the registry. See SimpleNetworkHandler.safeCall for the historical docs; semantics are identical.
override
toString() String
A string representation of this object.
inherited
verifyDrained() → void
Throws when results are still queued — i.e. the code under test made fewer calls than the test expected. Put it at the end of a test:

Operators

operator ==(Object other) bool
The equality operator.
inherited