Flutter插件uuv_flutter的使用_uuv_flutter是一个以可访问性为导向的解决方案,旨在通过使用Cucumber(行为驱动开发,BDD)和Flutter简化E2E测试的编写与执行

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 Flutter

Flutter未知功能插件uuv_flutter的潜在用途探索

概述

uuv_flutter 是一个以可访问性为导向的解决方案,旨在通过使用Cucumber(行为驱动开发,BDD)和Flutter简化E2E测试的编写与执行。这个插件特别适用于需要确保应用对所有用户都易于理解和使用的场景。

配置项目

修改或创建 build.yaml

在项目的根目录下编辑或创建 build.yaml 文件:

targets:  
  $default:  
    sources:  
      - integration_test/** 
      - test/** 
      - lib/**  
      - $package$  
    builders:  
      bdd_widget_test|featureBuilder:  
        enabled: false  
      uuv_flutter|generateTests:  
        enabled: true  

此配置确保了构建器能够正确处理集成测试文件。

编写测试

创建一个名为 integration_test/first-test.feature 的测试文件,示例如下:

Feature: Panoramax mobile App  
  
  Scenario: Homepage  
    Given the app is running  
    Then I should see a title named {'Your sequences'}  
    And I should see a button named {'Create a new sequence'}  

  Scenario: Capture page  
    Given the app is running  
    When I tap on a button named {'Create a new sequence'}  
    Then I should see a button named {'Take a picture'}  
    And I should see a button named {'Switch camera'}  
    And I should see a button named {'Create a new sequence with captured pictures'}  

可用语句

这里列出了一些常用的步骤定义,如检查文本、按钮的存在与否等。

生成测试文件

单次生成

执行以下命令生成测试文件:

dart run build_runner build --delete-conflicting-outputs

监视更改并自动生成

如果希望监视文件变化并自动重新生成测试文件,请运行:

dart run build_runner watch --delete-conflicting-outputs

实现生成的步骤

例如实现 'the app is running' 步骤,在生成的文件 integration_test/step/the_app_is_running.dart 中添加启动应用的代码:

import 'package:flutter_test/flutter_test.dart';  
import 'package:your_project/main.dart'; // 替换为你的项目入口

Future<void> theAppIsRunning(WidgetTester tester) async {  
  await tester.pumpWidget(const MyApp()); // 替换MyApp为你自己的应用
}  

运行测试

最后,可以通过以下命令运行生成的测试:

flutter test integration_test

更多关于Flutter插件uuv_flutter的使用_uuv_flutter是一个以可访问性为导向的解决方案,旨在通过使用Cucumber(行为驱动开发,BDD)和Flutter简化E2E测试的编写与执行的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

回到顶部