alchemist library

A support package that aims to make golden testing in Flutter easier and more streamlined.

Classes

AlchemistConfig
A configuration object that contains settings used by Alchemist for customizing the behavior of all golden tests.
BlockedTextCanvasAdapter
An adapter used to change how a canvas draws text
BlockedTextPaintingContext
A painting context used to replace all text blocks with colored rectangles.
CiGoldensConfig
The configuration for golden tests intended to be run in CI.
GoldensConfig
The configuration for golden tests.
GoldenTestGroup
A widget responsible for grouping test scenarios for use in golden tests.
GoldenTestScenario
A widget that displays its child with a label for use in golden tests.
GoldenTestTheme
A theme that dictates the behavior and appearance of elements created by Alchemist during golden testing. This theme is used to ensure that parts of golden tests controlled by Alchemist are consistent across Flutter SDK versions.
HostPlatform
A class that represents a host platform that can run golden tests.
PlatformGoldensConfig
The configuration for human readable golden tests.
TestAssetBundle
An AssetBundle class used in golden testing.

Constants

defaultGoldenTestRunner → const FlutterGoldenTestRunner
Default golden test runner which uses the flutter test framework.

Properties

defaultHostPlatform HostPlatform
Default host platform (the current host machine platform).
final
goldenTestRunner ↔ GoldenTestRunner
Golden test runner. Overriding this makes it easier to unit-test Alchemist.
getter/setter pair
hostPlatform HostPlatform
Indicates the current host platform used by Alchemist. Can be overridden for testing. This value is utilized by HostPlatform.current.
getter/setter pair
pumpOnce PumpAction
A custom PumpAction that pumps the widget tree once before golden evaluation.
final

Functions

goldenTest(String description, {required String fileName, bool skip = false, List<String> tags = const ['golden'], double textScaleFactor = 1.0, BoxConstraints constraints = const BoxConstraints(), PumpAction pumpBeforeTest = onlyPumpAndSettle, PumpWidget pumpWidget = onlyPumpWidget, Interaction? whilePerforming, required ValueGetter<Widget> builder}) Future<void>
Performs a Flutter widget test that compares against golden image.
loadFonts() Future<void>
Loads a font for use in golden tests.
longPress(Finder finder) Interaction
Long-presses all widgets matching finder.
onlyPumpAndSettle(WidgetTester tester) Future<void>
A custom PumpAction that pumps and settles the widget tree before golden evaluation.
onlyPumpWidget(WidgetTester tester, Widget widget) Future<void>
A custom PumpWidget that pumps the widget tree before golden evaluation, analogous to WidgetTester.pumpWidget.
precacheImages(WidgetTester tester) Future<void>
A custom PumpAction to ensure that the images for all Image, FadeInImage, and DecoratedBox widgets are loaded before the golden file is generated.
press(Finder finder, {Duration? holdFor = const Duration(milliseconds: 300)}) Interaction
Presses all widgets matching finder.
pumpNTimes(int n, [Duration? duration]) PumpAction
Returns a custom PumpAction that pumps the widget tree n times before golden evaluation.
scroll(Finder finder, {required Offset offset, double speed = kMinFlingVelocity}) Interaction
Scrolls all widgets matching finder.

Typedefs

ColumnWidthBuilder = TableColumnWidth? Function(int columns)
A function that receives the index of a column in a table and returns the desired column width behavior.
FilePathResolver = FutureOr<String> Function(String fileName, String environmentName)
A function that returns the path of a golden test file for a given test's fileName. This function's return value should include the .png extension.
Interaction = Future<AsyncCallback?> Function(WidgetTester)
An interaction to perform while rendering a golden test. Returns an asynchronous callback that should be called to cleanup when the golden test completes.
PumpAction = Future<void> Function(WidgetTester tester)
A function that may perform pumping actions to prime a golden test.
PumpWidget = Future<void> Function(WidgetTester tester, Widget widget)
A function used to render a given Widget.