Проверка жизненного цикла виджета с отслеживанием состояния для определенного действия - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть виджет с состоянием, который выполняет некоторые действия в initState и didUpdateWidget. Как мне написать тест, чтобы убедиться, что эти действия вызываются правильно?

Код виджета:

class ExploreIcon extends StatefulWidget {
  final bool loading;

  const ExploreIcon({Key key, this.loading}) : super(key: key);

  @override
  _ExploreIconState createState() => _ExploreIconState();
}

class _ExploreIconState extends State<ExploreIcon>
    with SingleTickerProviderStateMixin {
  AnimationController animationController;

  void doSomeAsynCall() {}

  @override
  void initState() {
    super.initState();

    doSomeAsynCall();

    animationController =
        AnimationController(vsync: this, duration: Duration(milliseconds: 500));
  }

  @override
  void didUpdateWidget(ExploreIcon oldWidget) {
    super.didUpdateWidget(oldWidget);

    if (widget.loading) {
      animationController.repeat();
    } else {
      animationController.forward();
    }
  }

  @override
  void dispose() {
    animationController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return RotationTransition(
      key: Key('ExploreIcon'),
      alignment: Alignment.center,
      turns: animationController,
      child: Icon(MaterialIcons.pets, color: Colors.white, size: 27.5),
    );
  }
}
...