set_state_4_test.dart 990 Bytes
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6 7 8 9
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

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

class Changer extends StatefulWidget {
  @override
10
  ChangerState createState() => ChangerState();
11 12 13 14 15 16 17 18
}

class ChangerState extends State<Changer> {
  void test0() { setState(() { }); }
  void test1() { setState(() => 1); }
  void test2() { setState(() async { }); }

  @override
Ian Hickson's avatar
Ian Hickson committed
19
  Widget build(BuildContext context) => const Text('test', textDirection: TextDirection.ltr);
20 21 22 23
}

void main() {
  testWidgets('setState() catches being used with an async callback', (WidgetTester tester) async {
24
    await tester.pumpWidget(Changer());
25
    final ChangerState s = tester.state(find.byType(Changer));
26 27 28
    expect(s.test0, isNot(throwsFlutterError));
    expect(s.test1, isNot(throwsFlutterError));
    expect(s.test2, throwsFlutterError);
29 30
  });
}