最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

flutter - How to unit test a StatefulWidget that updates a Text widget when selecting a date from showDatePicker? - Stack Overfl

programmeradmin0浏览0评论

Problem Description: I am trying to write a unit test for a StatefulWidget that opens showDatePicker when a Text widget is tapped. After selecting a date and pressing "OK," the text should update with the selected date. However, when writing a test using flutter_test, I am unable to properly simulate interaction with showDatePicker, and my test fails to detect or select a date.

Here is the widget implementation:

import 'package:flutter/material.dart';

class DatePickerWrapper extends StatefulWidget {
  @override
  _DatePickerWrapperState createState() => _DatePickerWrapperState();
}

class _DatePickerWrapperState extends State<DatePickerWrapper> {
  DateTime? selectedDate;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: GestureDetector(
          onTap: () async {
            DateTime? date = await showDatePicker(
              context: context,
              initialDate: DateTime(2024, 1, 1),
              firstDate: DateTime(2020, 1, 1),
              lastDate: DateTime(2030, 1, 1),
            );
            if (date != null) {
              setState(() {
                selectedDate = date;
              });
            }
          },
          child: Text(
            selectedDate != null
                ? '${selectedDate!.year}-${selectedDate!.month}-${selectedDate!.day}'
                : 'Pick a date',
            key: Key('dateText'),
          ),
        ),
      ),
    );
  }
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论