Add assert that the root widget has been attached. (#32437)

This commit is contained in:
Todd Volkert 2019-05-20 09:27:39 -07:00 committed by GitHub
parent 40300fb8a9
commit 069303d46f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -736,6 +736,12 @@ mixin WidgetsBinding on BindingBase, SchedulerBinding, GestureBinding, RendererB
).attachToRenderTree(buildOwner, renderViewElement);
}
/// Whether the [renderViewElement] has been initialized.
///
/// This will be false until [runApp] is called (or [WidgetTester.pumpWidget]
/// is called in the context of a [TestWidgetsFlutterBinding]).
bool get isRootWidgetAttached => _renderViewElement != null;
@override
Future<void> performReassemble() {
assert(() {

View File

@ -175,6 +175,8 @@ class FlutterDriverExtension {
/// the result into a subclass of [Result], but that's not strictly required.
@visibleForTesting
Future<Map<String, dynamic>> call(Map<String, String> params) async {
assert(WidgetsBinding.instance.isRootWidgetAttached,
'No root widget is attached; have you remembered to call runApp()?');
final String commandKind = params['command'];
try {
final CommandHandlerCallback commandHandler = _commandHandlers[commandKind];