颤振单元测试

时间:2020-08-14 10:20:12

标签: ios unit-testing flutter dart mobile

美好的一天! 我有一个抖动测试项目,我想为其编写单元测试。但是我不知道该怎么做。 点击屏幕上的更改背景颜色。 我想要一些提示,如果可能的话,请看下面的代码:

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'),
            ),
          )),
    );
  }
}

1 个答案:

答案 0 :(得分:1)

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

一个很好的资源是 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 上的文档。