Flutter快学快用24讲--09 单元测试:Flutter 应用单元测试,提升代码质量

之前已经讲解了 Flutter 所有基础的知识点,本课时介绍如何保证组件代码的质量,以此来确保我们在代码开发过程中或者在重构过程中的代码质量。

单元测试

单元测试的概念是针对程序中最小单位来进行校验的工作,在 Flutter 中最小的单位是组件。由于我们扩展了一些模块比如 Model(Provider)、Struct(数据结构部分),因此这里也需要介绍下这两部分的单元测试。

目录结构

为了保持一致性,我们在 test 单元测试目录,创建与项目结构目录一致的结构,如图 1 所示。

image (9).png

图 1 单元测试目录结构

单元测试目录结构下的测试文件命名也是按照原组件命名方式,但是需要在组件命名后面增加 test 后缀。例如,我们需要对 article_comments.dart 文件进行单元测试,根据规则将其命名为 article_comments_test.dart。

前期准备

首先我们需要在 pubspec.yaml 中增加相应的 flutter_test 第三库,一般项目初始化后,会自动在 dev_dependencies 中引入,最后执行 flutter pub get 更新本地第三库即可。目录结构目前还是需要手动创建,在下一课时,我会在脚手架中自动化创建。

Struct 的单元测试

Struct 的目的是保证数据结构的安全,避免因为动态数据结构而引发客户端的 Crash 问题,因此做好数据结构的单元测试非常必要。Struct 的结构比较简单,只有一个构造函数,在构造函数中存在必须和可选参数,单元测试部分主要是验证这个构造函数即可。

在上一课时中,我们创建了三个 Struct ,这里着重介绍较为复杂的 comment_info_struct.dart 的测试用例写法,代码如下。

import 'package:flutter_test/flutter_test.dart';
import 'package:two_you/util/struct/comment_info_struct.dart';
import 'package:two_you/util/struct/user_info_struct.dart';
void main() {
  final UserInfoStruct userInfo = UserInfoStruct('test', 'http://test.com');
  test('test-userinfo', () {
    final CommentInfoStruct commentInfo =
      CommentInfoStruct(userInfo, 'comment test');
    expect(commentInfo.comment == 'comment test', true);
    expect(commentInfo.userInfo.nickname == 'test', true);
    expect(commentInfo.userInfo.headerImage, '
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值