Flutter单元测试

Posted 码上加油站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter单元测试相关的知识,希望对你有一定的参考价值。


说明

单元测试用来验证代码中的某一个方法或者某一块逻辑是否正确。写单元测试的步骤如下:

  1. 添加 test 或者 flutter_test 依赖到工程中在 test 目录下

  2. 创建一个测试文件,如:my_test.dart

  3. 创建一个待测试的文件,如:my_counter.dart

  4. 在 counter_test.dart 文件中编写 test

  5. 果有多个测试的需要在一起测试的情况下,可以使用 group

  6. 运行测试类


具体操作演示

第一步:添加依赖(默认新建项目够已添加)

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);
  });
}


第五步:开始执行测试:


鼠标右击点击运行测试如下所示:

【Flutter】单元测试

效果:

【Flutter】单元测试


使用 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】单元测试


效果:两个通过,一个失败





  码上加油站

  一起来加油

长按扫码关注




记得点个 在看 哦!

以上是关于Flutter单元测试的主要内容,如果未能解决你的问题,请参考以下文章

Flutter学习之测试

Flutter学习之测试

Flutter 测试失败,单元测试预期和实际状态对象相同但仍然失败

Flutter 单元测试例子

单元测试 NPE,当我添加片段自定义转换时

Flutter:单元测试一个 Cubit 问题