如何解决颤振单元测试
美好的一天! 我有一个抖动测试项目,我想为其编写单元测试。但是我不知道该怎么做。 点击屏幕上的更改背景颜色。 我想要一些提示,如果可能的话,请看下面的代码:
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'),),)),);
}
}
解决方法
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 中的小部件测试,而不是单元测试。有关小部件测试及其方法的更多详细信息,请参阅 introduction、widget finders、tap and drag events 上的文档。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。