LiveTestWidgetsFlutterBinding class
A variant of TestWidgetsFlutterBinding for executing tests in
the flutter run
environment, on a device. This is intended to
allow interactive test development.
This is not the way to run a remote-control test. To run a test on
a device from a development computer, see the flutter_driver
package and the flutter drive
command.
When running tests using flutter run
, consider adding the
--use-test-fonts
argument so that the fonts used match those used under
flutter test
. (This forces all text to use the "Ahem" font, which is a
font that covers ASCII characters and gives them all the appearance of a
square whose size equals the font size.)
This binding overrides the default SchedulerBinding behavior to ensure that tests work in the same way in this environment as they would under the AutomatedTestWidgetsFlutterBinding. To override this (and see intermediate frames that the test does not explicitly trigger), set framePolicy to LiveTestWidgetsFlutterBindingFramePolicy.fullyLive. (This is likely to make tests fail, though, especially if e.g. they test how many times a particular widget was built.) The default behavior is to show pumped frames and a few additional frames when pointers are triggered (to animate the pointer crosshairs).
This binding does not support the EnginePhase argument to pump. (There would be no point setting it to a value that doesn't trigger a paint, since then you could not see anything anyway.)
- Inheritance
- Object
- BindingBase
- TestWidgetsFlutterBinding
- LiveTestWidgetsFlutterBinding
Constructors
Properties
- clock → Clock
-
The current time. [...]
read-only, override
- defaultTestTimeout → Timeout
-
The default test timeout for tests when using this binding. [...]
read-only, override
- deviceEventDispatcher ↔ HitTestDispatcher
-
An object to which real device events should be routed. [...]
read / write
- framePolicy ↔ LiveTestWidgetsFlutterBindingFramePolicy
-
Whether to have pump with a duration only pump a single frame
(as would happen in a normal test environment using
AutomatedTestWidgetsFlutterBinding), or whether to instead
pump every frame that the system requests during any
asynchronous pause in the test (as would normally happen when
running an application with WidgetsFlutterBinding). [...]
read / write
- inTest → bool
-
Whether there is currently a test executing.
read-only, override
- microtaskCount → int
-
The number of outstanding microtasks in the queue.
read-only, override
- renderView ↔ _LiveTestRenderView
-
The render tree that's attached to the output surface.
read / write, inherited-setter, override-getter
- accessibilityFeatures → AccessibilityFeatures
-
The currently active set of AccessibilityFeatures. [...]
read-only, inherited
- buildOwner → BuildOwner
-
The BuildOwner in charge of executing the build pipeline for the
widget tree rooted at this binding.
read-only, inherited
- checkIntrinsicSizes → bool
-
The value to set debugCheckIntrinsicSizes to while tests are running. [...]
@protected, read-only, inherited
- currentFrameTimeStamp → Duration
-
The time stamp for the frame currently being processed. [...]
read-only, inherited
- debugBuildingDirtyElements ↔ bool
-
Whether we are currently in a frame. This is used to verify
that frames are not scheduled redundantly. [...]
@protected, read / write, inherited
- debugDidSendFirstFrameEvent → bool
-
Whether the first frame has finished rendering. [...]
read-only, inherited
- debugPrintOverride → DebugPrintCallback
-
The value to set debugPrint to while tests are running. [...]
@protected, read-only, inherited
- decodedCacheRatioCap ↔ double
-
The maximum multiple of the compressed image size used when caching an
animated image. [...]
read / write, inherited
- disableAnimations → bool
-
The platform is requesting that animations be disabled or simplified. [...]
read-only, inherited
- disableShadows → bool
-
The value to set debugDisableShadows to while tests are running. [...]
@protected, read-only, inherited
-
endOfFrame
→ Future<
void> -
Returns a Future that completes after the frame completes. [...]
read-only, inherited
- focusedEditable ↔ EditableTextState
-
The current client of the onscreen keyboard. Callers must pump
an additional frame after setting this property to complete the
the focus change. [...]
read / write, inherited
- focusManager → FocusManager
-
The object in charge of the focus tree. [...]
read-only, inherited
- framesEnabled → bool
-
Whether frames are currently being scheduled when scheduleFrame is called. [...]
read-only, inherited
- gestureArena → GestureArenaManager
-
The gesture arenas used for disambiguating the meaning of sequences of
pointer events.
final, inherited
- hashCode → int
-
The hash code for this object. [...]
read-only, inherited
- hasScheduledFrame → bool
-
Whether this scheduler has requested that handleBeginFrame be called soon.
read-only, inherited
- imageCache → ImageCache
-
The singleton that implements the Flutter framework's image cache. [...]
read-only, inherited
- lifecycleState → AppLifecycleState
-
Whether the application is visible, and if so, whether it is currently
interactive. [...]
read-only, inherited
- locked → bool
-
Whether lockEvents is currently locking events. [...]
@protected, read-only, inherited
- pipelineOwner → PipelineOwner
-
The render tree's owner, which maintains dirty state for layout,
composite, paint, and accessibility semantics
read-only, inherited
- pointerRouter → PointerRouter
-
A router that routes all pointer events received from the engine.
final, inherited
- renderViewElement → Element
-
The Element that is at the root of the hierarchy (and which wraps the
RenderView object at the root of the rendering hierarchy). [...]
read-only, inherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
- schedulerPhase → SchedulerPhase
-
The phase that the scheduler is currently operating under.
read-only, inherited
- schedulingStrategy ↔ SchedulingStrategy
-
The strategy to use when deciding whether to run a task or not. [...]
read / write, inherited
- showAppDumpInErrors ↔ bool
-
Whether to include the output of debugDumpApp() when reporting
test failures.
read / write, inherited
- testTextInput → TestTextInput
-
A stub for the system's onscreen keyboard. Callers must set the
focusedEditable before using this value.
read-only, inherited
- transientCallbackCount → int
-
The current number of transient frame callbacks scheduled. [...]
read-only, inherited
Methods
-
createViewConfiguration(
) → ViewConfiguration -
Returns a ViewConfiguration configured for the RenderView based on the
current environment. [...]
override
-
dispatchEvent(
PointerEvent event, HitTestResult result, { TestBindingEventSource source: TestBindingEventSource.device }) → void -
Dispatch an event to a hit test result's path. [...]
override
-
globalToLocal(
Offset point) → Offset -
Convert the given point from the global coordinate system (as used by
pointer events from the device) to the coordinate system used by the
tests (an 800 by 600 window).
override
-
handleBeginFrame(
Duration rawTimeStamp) → void -
Called by the engine to prepare the framework to produce a new frame. [...]
override
-
handleDrawFrame(
) → void -
Called by the engine to produce a new frame. [...]
override
-
initInstances(
) → void -
The initialization method. Subclasses override this method to hook into
the platform and otherwise configure their services. Subclasses must call
"super.initInstances()". [...]
override
-
initRenderView(
) → void -
Creates a RenderView object to be the root of the
RenderObject rendering tree, and initializes it so that it
will be rendered when the engine is next ready to display a
frame. [...]
override
-
localToGlobal(
Offset point) → Offset -
Convert the given point from the coordinate system used by the tests (an
800 by 600 window) to the global coordinate system (as used by pointer
events from the device).
override
-
postTest(
) → void -
Called by the testWidgets function after a test is executed.
override
-
pump(
[Duration duration, EnginePhase newPhase = EnginePhase.sendSemanticsUpdate ]) → Future< void> -
Triggers a frame sequence (build/layout/paint/etc),
then flushes microtasks. [...]
override
-
reportExceptionNoticed(
FlutterErrorDetails exception) → void -
Called when the framework catches an exception, even if that exception is
being handled by takeException. [...]
override
-
runAsync<
T>( Future< T> callback(), { Duration additionalTime: const Duration(milliseconds: 250) }) → Future< T> -
Runs a
callback
that performs real asynchronous work. [...]override -
runTest(
Future< void> testBody(), VoidCallback invariantTester, { String description: '' }) → Future< void> -
Call the testBody inside a FakeAsync scope on which pump can
advance time. [...]
override
-
scheduleForcedFrame(
) → void -
Schedules a new frame by calling Window.scheduleFrame. [...]
override
-
scheduleFrame(
) → void -
If necessary, schedules a new frame by calling
Window.scheduleFrame. [...]
override
-
addObserver(
WidgetsBindingObserver observer) → void -
Registers the given object as a binding observer. Binding
observers are notified when various application events occur,
for example when the system locale changes. Generally, one
widget in the widget tree registers itself as a binding
observer, and converts the system state into inherited widgets. [...]
inherited
-
addPersistentFrameCallback(
FrameCallback callback) → void -
Adds a persistent frame callback. [...]
inherited
-
addPostFrameCallback(
FrameCallback callback) → void -
Schedule a callback for the end of this frame. [...]
inherited
-
allowFirstFrameReport(
) → void -
When called after deferFirstFrameReport: tell the framework to report
the frame it is building as a "useful" first frame. [...]
inherited
-
asyncBarrier(
) → void -
This is called during test execution before and after the body has been
executed. [...]
inherited
-
attachRootWidget(
Widget rootWidget) → void -
Takes a widget and attaches it to the renderViewElement, creating it if
necessary. [...]
inherited
-
cancelFrameCallbackWithId(
int id) → void -
Cancels the transient frame callback with the given
id
. [...]inherited -
cancelPointer(
int pointer) → void -
Dispatch a PointerCancelEvent for the given pointer soon. [...]
inherited
-
createImageCache(
) → ImageCache -
Creates the ImageCache singleton (accessible via imageCache). [...]
@protected, inherited
-
debugAssertNoTransientCallbacks(
String reason) → bool -
Asserts that there are no registered transient callbacks; if
there are, prints their locations and throws an exception. [...]
inherited
-
deferFirstFrameReport(
) → void -
Tell the framework not to report the frame it is building as a "useful"
first frame until there is a corresponding call to allowFirstFrameReport. [...]
inherited
-
dispatchAccessibilityFeaturesChanged(
) → void -
Notify all the observers that the active set of AccessibilityFeatures
has changed (using WidgetsBindingObserver.didChangeAccessibilityFeatures),
giving them the
features
argument. [...]@mustCallSuper, @protected, inherited -
dispatchLocalesChanged(
List< Locale> locales) → void -
Notify all the observers that the locale has changed (using
WidgetsBindingObserver.didChangeLocales), giving them the
locales
argument. [...]@mustCallSuper, @protected, inherited -
drawFrame(
) → void -
Pump the build and rendering pipeline to generate a frame. [...]
inherited
-
ensureVisualUpdate(
) → void -
Schedules a new frame using scheduleFrame if this object is not
currently producing a frame. [...]
inherited
-
evict(
String asset) → void -
Called in response to the
ext.flutter.evict
service extension. [...]inherited -
handleAccessibilityFeaturesChanged(
) → void -
Called when the platform accessibility features change. [...]
inherited
-
handleAppLifecycleStateChanged(
AppLifecycleState state) → void -
Called when the application lifecycle state changes. [...]
inherited
-
handleEvent(
PointerEvent event, HitTestEntry entry) → void -
Override this method to receive events.
inherited
-
handleEventLoopCallback(
) → bool -
Execute the highest-priority task, if it is of a high enough priority. [...]
@visibleForTesting, inherited
-
handleLocaleChanged(
) → void -
Called when the system locale changes. [...]
@mustCallSuper, @protected, inherited
-
handleMemoryPressure(
) → void -
Called when the operating system notifies the application of a memory
pressure situation. [...]
inherited
-
handleMetricsChanged(
) → void -
Called when the system metrics change. [...]
inherited
-
handlePopRoute(
) → Future< void> -
Called when the system pops the current route. [...]
@protected, inherited
-
handlePushRoute(
String route) → Future< void> -
Called when the host tells the app to push a new route onto the
navigator. [...]
@mustCallSuper, @protected, inherited
-
handleTextScaleFactorChanged(
) → void -
Called when the platform text scale factor changes. [...]
inherited
-
hitTest(
HitTestResult result, Offset position) → void -
Check whether the given position hits this object. [...]
inherited
-
idle(
) → Future< void> -
Acts as if the application went idle. [...]
inherited
-
initLicenses(
) → void -
Adds relevant licenses to the LicenseRegistry. [...]
inherited
-
initServiceExtensions(
) → void -
Called when the binding is initialized, to register service
extensions. [...]
inherited
-
instantiateImageCodec(
Uint8List list) → Future< Codec> -
Calls through to dart:ui with decodedCacheRatioCap from ImageCache.
inherited
-
lockEvents(
Future< void> callback()) → Future< void> -
Locks the dispatching of asynchronous events and callbacks until the
callback's future completes. [...]
@protected, inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
performReassemble(
) → Future< void> -
This method is called by reassembleApplication to actually cause the
application to reassemble, e.g. after a hot reload. [...]
inherited
-
reassembleApplication(
) → Future< void> -
Cause the entire application to redraw, e.g. after a hot reload. [...]
inherited
-
registerBoolServiceExtension(
{String name, AsyncValueGetter< bool> getter, AsyncValueSetter< bool> setter }) → void -
Registers a service extension method with the given name (full
name "ext.flutter.name"), which takes a single argument
"enabled" which can have the value "true" or the value "false"
or can be omitted to read the current value. (Any value other
than "true" is considered equivalent to "false". Other arguments
are ignored.) [...]
@protected, inherited
-
registerNumericServiceExtension(
{String name, AsyncValueGetter< double> getter, AsyncValueSetter< double> setter }) → void -
Registers a service extension method with the given name (full
name "ext.flutter.name"), which takes a single argument with the
same name as the method which, if present, must have a value
that can be parsed by double.parse, and can be omitted to read
the current value. (Other arguments are ignored.) [...]
@protected, inherited
-
registerServiceExtension(
{String name, ServiceExtensionCallback callback }) → void -
Registers a service extension method with the given name (full name
"ext.flutter.name"). [...]
@protected, inherited
-
registerSignalServiceExtension(
{String name, AsyncCallback callback }) → void -
Registers a service extension method with the given name (full
name "ext.flutter.name"), which takes no arguments and returns
no value. [...]
@protected, inherited
-
registerStringServiceExtension(
{String name, AsyncValueGetter< String> getter, AsyncValueSetter< String> setter }) → void -
Registers a service extension method with the given name (full name
"ext.flutter.name"), which optionally takes a single argument with the
name "value". If the argument is omitted, the value is to be read,
otherwise it is to be set. Returns the current value. [...]
@protected, inherited
-
removeObserver(
WidgetsBindingObserver observer) → bool -
Unregisters the given observer. This should be used sparingly as
it is relatively expensive (O(N) in the number of registered
observers). [...]
inherited
-
resetEpoch(
) → void -
Prepares the scheduler for a non-monotonic change to how time stamps are
calculated. [...]
inherited
-
scheduleFrameCallback(
FrameCallback callback, { bool rescheduling: false }) → int -
Schedules the given transient frame callback. [...]
inherited
-
scheduleTask<
T>( TaskCallback< T> task, Priority priority, { String debugLabel, Flow flow }) → Future< T> -
Schedules the given
task
with the givenpriority
and returns a Future that completes to thetask
's eventual return value. [...]inherited -
scheduleWarmUpFrame(
) → void -
Schedule a frame to run as soon as possible, rather than waiting for
the engine to request a frame in response to a system "Vsync" signal. [...]
inherited
-
setLocale(
String languageCode, String countryCode) → Future< void> -
Artificially calls dispatchLocalesChanged on the Widget binding,
then flushes microtasks. [...]
inherited
-
setLocales(
List< Locale> locales) → Future< void> -
Artificially calls dispatchLocalesChanged on the Widget binding,
then flushes microtasks.
inherited
-
setSemanticsEnabled(
bool enabled) → void -
Whether the render tree associated with this binding should produce a tree
of SemanticsNode objects.
inherited
-
setSurfaceSize(
Size size) → Future< void> -
Artificially changes the surface size to
size
on the Widget binding, then flushes microtasks. [...]inherited -
takeException(
) → dynamic -
Returns the exception most recently caught by the Flutter framework. [...]
inherited
-
toString(
) → String -
Returns a string representation of this object.
inherited
-
unlocked(
) → void -
Called by lockEvents when events get unlocked. [...]
inherited
Operators
-
operator ==(
dynamic other) → bool -
The equality operator. [...]
inherited