搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 码上加油站 > 【Flutter】单元测试

【Flutter】单元测试

码上加油站 2020-09-14


说明

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

  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】单元测试》的版权归原作者「码上加油站」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注码上加油站微信公众号

码上加油站微信公众号:mashangjiayouzhan

码上加油站

手机扫描上方二维码即可关注码上加油站微信公众号

码上加油站最新文章

精品公众号随机推荐