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.
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 allowAllFrames to true. (This is likely to make tests fail, though, especially if e.g. they test how many times a particular widget was built.)
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
- allowAllFrames → bool
-
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 - defaultTestTimeout → Timeout
-
read-only
- deviceEventDispatcher → HitTestDispatcher
-
An object to which real device events should be routed.
read / write - inTest → bool
-
read-only
- microtaskCount → int
-
read-only
- renderView → _LiveTestRenderView
-
read-only
- buildOwner → BuildOwner
-
The
BuildOwner
in charge of executing the build pipeline for the widget tree rooted at this binding.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.
read / write, inherited - gestureArena → GestureArenaManager
-
The gesture arenas used for disambiguating the meaning of sequences of pointer events.
read-only, inherited - hashCode → int
-
Get a hash code for this object.
read-only, inherited - hasScheduledFrame → bool
-
Whether this scheduler has requested that handleBeginFrame be called soon.
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.
read-only, inherited - renderView → RenderView
-
The render tree that's attached to the output surface.
read / write, inherited - renderViewElement → Element
-
The
Element
that is at the root of the hierarchy (and which wraps theRenderView
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 - transientCallbackCount → int
-
The current number of transient frame callbacks scheduled.
read-only, inherited
Operators
-
operator ==(
other) → bool -
The equality operator.
inherited
Methods
-
createViewConfiguration(
) → ViewConfiguration -
Returns a
ViewConfiguration
configured for theRenderView
based on the current environment. -
dispatchEvent(
PointerEvent event, HitTestResult result, { TestBindingEventSource source: TestBindingEventSource.device }) → void -
Dispatch an event to a hit test result's path.
-
globalToLocal(
Point point) → Point -
Convert the given point from the global coodinate system (as used by pointer events from the device) to the coordinate system used by the tests (an 800 by 600 window).
-
handleBeginFrame(
Duration rawTimeStamp) → void -
Called by the engine to produce a new frame.
-
initRenderView(
) → void -
Creates a
RenderView
object to be the root of theRenderObject
rendering tree, and initializes it so that it will be rendered when the engine is next ready to display a frame. -
localToGlobal(
Point point) → Point -
Convert the given point from the coordinate system used by the tests (an 800 by 600 window) to the global coodinate system (as used by pointer events from the device).
-
postTest(
) → void -
Called by the
testWidgets
function after a test is executed. -
pump(
[Duration duration, EnginePhase newPhase = EnginePhase.sendSemanticsTree ]) → Future<Null> -
Triggers a frame sequence (build/layout/paint/etc), then flushes microtasks.
-
runTest(
Future<Null> testBody(), VoidCallback invariantTester) → Future<Null> -
Call the testBody inside a
FakeAsync
scope on whichpump
can advance time. -
addFrameCallback(
FrameCallback callback, { bool rescheduling: false }) → int -
Adds a transient frame callback.
inherited -
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 -
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 -
beginFrame(
) → void -
Pump the build and rendering pipeline to generate a frame.
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 -
debugAssertNoTransientCallbacks(
String reason) → bool -
Asserts that there are no registered transient callbacks; if there are, prints their locations and throws an exception.
inherited -
dispatchLocaleChanged(
Locale locale) → void -
Notify all the observers that the locale has changed (using WidgetsBindingObserver.didChangeLocale), giving them the
locale
argument.inherited -
ensureVisualUpdate(
) → void -
Schedules a new frame using scheduleFrame if this object is not currently producing a frame.
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(
) → void -
Called by the system when there is time to run tasks.
inherited -
handleLocaleChanged(
) → void -
Called when the system locale changes.
inherited -
handleMetricsChanged(
) → void -
Called when the system metrics change.
inherited -
handlePopRoute(
) → void -
Called when the system pops the current route.
inherited -
hitTest(
HitTestResult result, Point position) → void -
Check whether the given position hits this object.
inherited -
idle(
) → Future<Null> -
Acts as if the application went idle.
inherited -
initInstances(
) → void -
The initialization method. Subclasses override this method to hook into the platform and otherwise configure their services. Subclasses must call "super.initInstances()".
inherited -
initServiceExtensions(
) → void -
Called when the binding is initialized, to register service extensions.
inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited -
preventThisFrameFromBeingReportedAsFirstFrame(
) → void -
Tell the framework that the frame we are currently building should not be considered to be a useful first frame.
inherited -
reassembleApplication(
) → void -
Called when the ext.flutter.reassemble signal is sent by development tools.
inherited -
registerBoolServiceExtension(
{String name, ValueGetter<bool> getter, ValueSetter<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.)
inherited -
registerNumericServiceExtension(
{String name, ValueGetter<double> getter, ValueSetter<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.)
inherited -
registerServiceExtension(
{String name, ServiceExtensionCallback callback }) → void -
Registers a service extension method with the given name (full name "ext.flutter.name"). The given callback is called when the extension method is called. The callback must return a Future that either eventually completes to a return value in the form of a name/value map where the values can all be converted to JSON using
JSON.encode
, or fails. In case of failure, the failure is reported to the remote caller and is dumped to the logs.inherited -
registerSignalServiceExtension(
{String name, VoidCallback callback }) → void -
Registers a service extension method with the given name (full name "ext.flutter.name"), which takes no arguments and returns no value.
inherited -
registerStringServiceExtension(
{String name, ValueGetter<String> getter, ValueSetter<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.
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 calcuated.
inherited -
scheduleFrame(
) → void -
If necessary, schedules a new frame by calling
ui.window.scheduleFrame
.inherited -
scheduleFrameCallback(
FrameCallback callback, { bool rescheduling: false }) → int -
Schedules the given transient frame callback.
inherited -
scheduleTask(
VoidCallback task, Priority priority) → void -
Schedules the given
task
with the givenpriority
.inherited -
setLocale(
String languageCode, String countryCode) → Future<Null> -
Artificially calls dispatchLocaleChanged on the Widget binding, then flushes microtasks.
inherited -
setSemanticsEnabled(
bool enabled) → void -
inherited
-
takeException(
) → dynamic -
Returns the exception most recently caught by the Flutter framework.
inherited -
toString(
) → String -
Returns a string representation of this object.
inherited