【问题标题】:Flutter Unit test颤振单元测试
【发布时间】:2020-12-04 05:35:10
【问题描述】:

美好的一天! 我有一个颤振测试项目,我想给它写一个单元测试。但我不知道该怎么做。 点击屏幕更改背景颜色。 我想要一些提示,如果可能的话,这是我的代码:

import 'package:flutter/material.dart';
import 'dart:math';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  Color randomColor;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        setState(() {
          randomColor = Color((Random().nextDouble() * 0xFFFFFF).toInt())
              .withOpacity(1.0);
        });
      },
      child: Scaffold(
          backgroundColor: randomColor,
          body: Container(
            child: Center(
              child: Text('Hey, there'),
            ),
          )),
    );
  }
}

【问题讨论】:

    标签: ios unit-testing flutter dart mobile


    【解决方案1】:

    Flutter 内置了一个测试包。我们只需要在我们编写测试脚本的 dart 文件中导入import 'package:test/test.dart';。还要在pubspec.yaml 文件中添加test 包。

    Flutter documentation 是一个很好的入门资源,如果您完全不熟悉 Flutter 测试,请继续跟进。

    关于您的问题,绝对不可能在点击时测试和验证背景颜色,因为它是随机生成的,但当然您可以为上述 dart 代码添加一个简单的单元测试,以查找并匹配 Text 小部件是否显示。这是针对这种情况的测试代码。

    import 'package:flutter/material.dart';
    import 'package:flutter_test/flutter_test.dart';
    
      /// Creating a new Flutter-Widget-test
      testWidgets('Simple Flutter Test Example', (WidgetTester tester) async {
        
        /// Pumping the widget to the screen [build and rendering]
        await tester.pumpWidget(myApp());
    
        /// Set finders
        var textFinder = find.text('Hey, there');
    
        /// Set matchers
        expect(textFinder, findsOneWidget);
      });
    }
    

    这更像是 Flutter 中的小部件测试,而不是单元测试。有关小部件测试及其方法的更多详细信息,请关注introductionwidget finderstap and drag events 上的文档。

    【讨论】:

      猜你喜欢
      • 2023-01-12
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2019-08-05
      • 2020-05-13
      • 2021-06-28
      相关资源
      最近更新 更多