原文
https://medium.com/@sanketsma…
参考
- https://docs.flutter.dev/cook…
注释
大家好!
首先让咱们理解一下为什么在应用程序还处于开发阶段时,咱们须要对其执行自动化测试。
自动化测试是一种应用自动化工具测试工具在软件应用程序上编写和运行测试用例套件的办法。
如果咱们在开发阶段测试应用程序,咱们能够通过应用自动化测试来检测可能导致呈现例行更改的新谬误,从而节省时间。
Flutter 自动测试的几种类型:
- Unit Test 单元测试
- Widget Test 小部件测试
- Integration Test 综合测试
留神: 咱们只在本文中探讨单元测试。
什么是单元测试和测试用例?
单元测试用于验证单个函数、办法或类的正确性。要测试此函数、办法或类,必须编写测试用例。为了验证预期输入而必须满足的条件称为测试用例。
施行程序:
在本文中,咱们将为登录页面运行测试用例,该页面有两个字段: email id 和 password。
步骤 1: 确保在 pubspec yaml 文件中存在 flutter_test
依赖项。
dev_dependencies:
flutter_test:
sdk: flutter
步骤 2: 创立验证器类。
咱们所有的验证办法都将在这个类中编写。这些办法将用于咱们的登录页面 (在 email 和明码 textformfield 验证器参数中) 和 login_unit_test 类中。
- 明码 TextFormField\_
TextFormField(validator: Validators.validatePwd,)
- Validator Class Validator 类
步骤 3: 在测试目录中创立 login_unit_test 类,并为 Login 编写测试用例。
当初,咱们曾经到了编写测试用例的阶段。
void main() {test('Verify invalid email address', () {
String emailId = 'abc@gmail';
var result = Validators._validateEmailId_(emailId);
expect(result, 'Enter valid Email ID.');
});
test('Verify valid password', () {
String pwd = 'Qwe@12345';
var result = Validators._validatePwd_(pwd);
expect(result, null);
});
}
咱们应用 test 函数来定义测试用例。咱们必须在这个函数中提供两个强制参数。第一个参数是一个字符串值,即(对特定状况的形容),第二个参数是一个函数,咱们在其中验证测试用例。
咱们应用 expect 函数将后果与预期进行比拟。Expect 函数还有两个必须的参数。第一个参数是验证器函数返回的后果,第二个参数是比拟器或预期后果。
测试包提供了测试和冀望函数。
让咱们回到后面的例子。
第一个测试性能是验证电子邮件地址。如您所见,有两个变量: emailId 和 result _emailId_ 之后,Validator 类函数将值返回给 result 变量。
因而,你们中的一些人可能想晓得为什么我将第二个测试用例的预期后果值保留为 _null_。
如果您继续执行第 3 步,在那里咱们创立了验证器类,您将留神到,如果值不是空的或者与正则表达式匹配,咱们将返回一个空值。这就是为什么冀望的后果值设置为 null 的起因。确保后果是正确的。
您也能够将您的测试用例组合在一起。
group('Multiple test cases for password verification', () {test('Verify password', () {
String pwd = 'Abc@12345';
var result = Validators._validatePwd_(pwd);
expect(result, null);
});
test('Verify empty password', () {
String pwd = '';
var result = Validators._validatePwd_(pwd);
expect(result, 'Enter Password');
});
});
步骤 4: 运行测试用例。
要运行所有测试用例,只需在终端输出以下命令: flutter test test/name_of_your_file.dart
- 当所有测试用例通过时,这就是后果。
- 您也能够通过单击播放按钮来运行单个测试用例,我在上面的图片中高亮显示了这一点。
- 如果测试用例失败,上面是后果。
结语:
这是一个 Flutter 的单元测试的疾速概述。我心愿我曾经给了您足够的信息来尝试在您的我的项目中进行单元测试。
© 猫哥
- 微信 ducafecat
- 博客 ducafecat.tech
- github
- bilibili