软件测试最全Flutter 中的测试驱动开发_flutter 测试驱动开发,2024年最新成长路线图
在 Flutter 应用程序中实施测试驱动开发是可靠的,并且可以最大限度地减少错误。因此,使用这种技术来构建您的应用程序完全取决于您的要求和需要。如果您的测试用例倾向于通过所有用例,则认为 Flutter 测试成功,否则检查错误,重构代码并重新运行命令,直到通过所有测试用例。最初,我们采用了一个色卡小部件。部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
测试驱动开发过程
测试驱动开发的过程往往是迭代和循环的(即过程将处于循环中,直到所提到的条件或测试用例通过)。
TDD主要分为三个阶段:
- 红色阶段 在这个阶段,开发者需要为需要创建的特性编写测试场景。最初,由于尚未创建功能或小部件,它将返回错误。
- 绿色阶段 特性代码的实际开发或小部件的创建在此阶段完成。这一步是在有或没有最佳代码编写的情况下完成的;它仅确保创建了功能并且测试用例成功。
- 重构阶段 为测试和实际功能代码编写的代码的重构或优化需要在此阶段完成。
为您的应用程序实施 TDD 的步骤
- 文件夹结构
- 删除默认 Flutter 项目创建的测试文件,即widget_test.dartFlutter 应用程序中的样板测试代码文件。
- 根据您的应用程序的要求创建一个子文件夹。如果您想实现测试驱动开发,请包括与创建子文件夹结构域层、数据层和表示层相关的所有逻辑和 UI 组件,否则会继续为每个案例创建单个文件。
- 应使用screen_name_test.dart如下图所示的命名模式创建测试文件:

- 完成应用程序所需的测试
- 根据您的要求(数据、域和演示或单元测试/小部件测试/集成/安全测试)确定您可能需要添加到项目中的测试类型
- 编写测试用例
- 这里我以atsign基金会的at_theme_flutter pub.dev包为例,详细演示实现步骤:

- 根据这里的包要求,我们决定只进行小部件测试,因为不需要任何单元或安全测试。因此,作为第一步,我们根据命名约定创建了一个文件夹。
测试用例
最初,我们采用了一个色卡小部件。在这里,我们需要编写一个测试用例来检查预期的颜色是否已传递给小部件。在控制台中输入以下代码:
void main() {
Widget _wrapWidgetWithMaterialApp({required Widget colorCard}) {
return TestMaterialApp(home: Builder(builder: (BuildContext context) {
SizeConfig().init(context);
return colorCard;
}));
}
import 'package:at_common_flutter/at_common_flutter.dart';
import 'package:at_theme_flutter/src/widgets/color_card.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import '../test_material_app.dart';
void main() {
Widget _wrapWidgetWithMaterialApp({required Widget colorCard}) {
return TestMaterialApp(home: Builder(builder: (BuildContext context) {
SizeConfig().init(context);
return colorCard;
}));
}
/// Functional test cases for Color Card Widget
group('Color Card Widget Tests:', () {
// Test Case to Check Color Card is displayed
final colorCard = ColorCard(color: Colors.orange, isSelected: true);
testWidgets("Color Card is displayed", (WidgetTester tester) async {
await tester.pumpWidget(
_wrapWidgetWithMaterialApp(colorCard: colorCard));
expect(find.byType(ColorCard), findsOneWidget);
});
});
}
以下是一些重要的元素:
- group()=> 它接受一组测试。它还包含参数描述和函数体。
- testWidget()=> 它在 Flutter 测试环境中运行回调;回调可以是同步的或异步的。它包含描述和函数体等参数。
- tester.pumpWidget()=> 它用于从给定的小部件呈现 UI。
- expect()=> 它用于指定小部件的预期行为。
- 运行flutter测试命令
在控制台中输入以下命令:
flutter test
如果您的测试用例倾向于通过所有用例,则认为 Flutter 测试成功,否则检查错误,重构代码并重新运行命令,直到通过所有测试用例。
结论
在 Flutter 应用程序中实施测试驱动开发是可靠的,并且可以最大限度地减少错误。另一方面,这似乎很耗时并且增加了代码的总行数。因此,使用这种技术来构建您的应用程序完全取决于您的要求和需要。



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
更多推荐
所有评论(0)