Flutter单元测试
Posted 码上加油站
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter单元测试相关的知识,希望对你有一定的参考价值。
说明
单元测试用来验证代码中的某一个方法或者某一块逻辑是否正确。写单元测试的步骤如下:
添加 test 或者 flutter_test 依赖到工程中在 test 目录下
创建一个测试文件,如:my_test.dart
创建一个待测试的文件,如:my_counter.dart
在 counter_test.dart 文件中编写 test
如果有多个测试的需要在一起测试的情况下,可以使用 group
运行测试类
具体操作演示
第一步:添加依赖(默认新建项目够已添加):
dev_dependencies:
flutter_test:
sdk: flutter
第二步:创建测试类
需要创建两个文件,一个是测试类文件 my_test.dart 还有一个是被测试文件counter.dart
第三步:编写被测试类
class MyCounter {
int value = 0;
void increment() => value++;
void decrement() => value--;
}
第四步:编写测试类
会使用到一些 flutter_test 包提供的顶层方法:
test(...) 方法:定义一个单元测试里面,有两个必需的参数,第一个参数表示这个单元测试的描述信息,第二个是一个 Function,用来编写测试内容的。
expect(...) 方法:用来验证结果,有两个必需的参数,第一个是需要验证的变量,第二个是与该变量匹配的值。
import 'package:flutter_test/flutter_test.dart';
import 'package:flutterstudydemo/test/counter.dart';
void main() {
// 单元的测试
test("测试 value 递增", () {
final counter = MyCounter();
counter.increment();
// 验证 counter.value 的是是否为 1
expect(counter.value, 1);
});
}
第五步:开始执行测试:
鼠标右击点击运行测试如下所示:
效果:
使用 group 来执行多个测试
import 'package:flutter_test/flutter_test.dart';
import 'package:flutterstudydemo/test/counter.dart';
void main() {
// 使用 group 合并多个测试。用来测试多个有关联的测试
group("Counter", () {
test("value should start at 0", () {
expect(MyCounter().value, 0);
});
test("value should be increment", () {
final counter = MyCounter();
counter.increment();
expect(counter.value, 2);
});
test("value should be decremented", () {
final counter = MyCounter();
counter.decrement();
expect(counter.value, -1);
});
});
}
鼠标右击点击运行测试如下所示:
效果:两个通过,一个失败
完
码上加油站
一起来加油
长按扫码关注
以上是关于Flutter单元测试的主要内容,如果未能解决你的问题,请参考以下文章