Logowiretap Documentation

Testing & Mocks

Override dependencies for tests and isolate units effectively

Override for tests#

Replace real implementations with fakes or mocks.

final httpClientToken = provide<HttpClient>();
final apiServiceToken = provide<ApiService>((inject) =>
  ApiService(inject(httpClientToken))
);

final prodContext = WiretapContext(providers: [
  httpClientToken.provideOverride((_) => HttpClient()),
]);

final testContext = WiretapContext(providers: [
  httpClientToken.provideOverride((_) => MockHttpClient()),
]);

test('service uses mocked client', () {
  final service = testContext.inject(apiServiceToken);
  // ... assertions against the mocked behavior
});

Next: Check out the experimental lifecyle api Lifecycle.