A package for faking Dart/Flutter HttpClient's responses.

It is handy for integration tests. Also it may help a lot during app development with an unstable back-end.


The following example forces all HTTP requests to return a successful empty response in a test environment. No actual HTTP requests will be performed.

class _EmptyResponseHttpOverrides extends HttpOverrides {
  HttpClient createHttpClient(_) {
    return FakeHttpClient((request, client) {
      // The default response is an empty 200.
      return FakeHttpResponse();

void main() {
  group('HttpClient', () {
    setUp(() {
      // Overrides all HttpClients.
      HttpOverrides.global = _EmptyResponseHttpOverrides();

    test('returns faked OK empty response for non-existing website', () async {
      // This is actually an instance of [FakeHttpClient].
      final client = HttpClient();
      final request = await client.getUrl(Uri.parse('https://non-existing-site.com'));
      final response = await request.close();

      expect(response.statusCode, HttpStatus.ok);
      expect(response.contentLength, 0);