hrk_flutter_test_batteries 1.0.0 copy "hrk_flutter_test_batteries: ^1.0.0" to clipboard
hrk_flutter_test_batteries: ^1.0.0 copied to clipboard

A library to accumulate required flutter test helper and utility codes

ci pub package link codecov link

A library to accumulate required flutter test helper and utility codes

Features #

Convenient Helpers #

Getting started #

flutter pub add dev:hrk_flutter_test_batteries

Usage #

import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:hrk_flutter_test_batteries/hrk_flutter_test_batteries.dart';

void main() {
  test('$getTestType() Test', () {
    // To know whether in Widget Test or Integration Test.
    // For commands
    //   - flutter test
    //   - flutter test integration_test
    //   - flutter driver
  });

  testWidgets('Simulate Android Back Button', (tester) async {
    // await tester.pumpWidget(deep-link code);
    simulateAndroidBackButton(tester);
    // expect(find.byType(HomeScreen), findsOneWidget);
  });

  testWidgets('Pump app and press back', (tester) async {
    // await pumpApp(tester);
    await verifySystemNavigatorPop(tester);
    // To verify pressing back button, leaves the app
  });

  testWidgets('tester.getOverflowRenderFlexList()', (tester) async {
    disableOverflowError();
    tester.view.physicalSize = Size(280, tester.view.physicalSize.height);
    addTearDown(() => tester.view.resetPhysicalSize());
    // await tester.pumpWidget(widget under test);
    final overflowRenderFlexList = tester.getOverflowRenderFlexList();
    expect(overflowRenderFlexList.length, 0);
  });

  testWidgets('tester.expectNoOverflow()', (tester) async {
    disableOverflowError();
    tester.view.physicalSize = Size(280, tester.view.physicalSize.height);
    addTearDown(() => tester.view.resetPhysicalSize());
    // await tester.pumpWidget(widget under test);
    tester.expectNoOverflow();
  });

  testWidgets('tester.view.setLogicalSize()', (tester) async {
    // Saves atleast 3 lines
    // tester.view.physicalSize = Size(280, 653);
    // tester.view.devicePixelRatio = 1.0;
    // addTearDown(() => tester.view.resetPhysicalSize());
    // addTearDown(() => tester.view.resetDevicePixelRatio());
    tester.view.setLogicalSize(width: 280, height: 653);
  });

  testWidgets('useGoldenFileComparatorWithThreshold()', (tester) async {
    const double viewWidth = 100;
    const double viewHeight = 100;
    tester.view.setLogicalSize(width: viewWidth, height: viewHeight);
    await tester.pumpWidget(
      const SizedBox(
        width: viewWidth,
        height: viewHeight,
        child: ColoredBox(
          color: Colors.blue,
        ),
      ),
    );
    useGoldenFileComparatorWithThreshold(0.50); // 50.00%
    await expectLater(
      find.byType(ColoredBox),
      matchesGoldenFile('within-threshold.png'),
    );
  });
}
3
likes
0
points
7.69k
downloads

Publisher

verified publisherhrishikesh-kadam.dev

Weekly Downloads

A library to accumulate required flutter test helper and utility codes

Repository (GitHub)
View/report issues

Topics

#batteries #flutter-batteries #flutter-test-batteries

License

unknown (license)

Dependencies

flutter, flutter_test, hrk_logging, integration_test

More

Packages that depend on hrk_flutter_test_batteries