开发阶段的自我检查 之 单元测试

开发阶段的自我检查 之 单元测试

Q:开发阶段我们可以进行哪些自我检查呢?

🌇 例如:刚写好一个轮播图组件

✅ 我们会造一些轮播图的数据 > 跑一把 看看效果

✅ 修改一下数据 只有一张图片 > 重新加载 看下效果

✅ 数据为空 > 重新加载 看下效果

✅ 换用不同尺寸的图片 > 再次进入 看下效果

是的 在开发阶段我们经常会做代码的自我检查

A:从开发的过程来分 我们可以把开发阶段的自我检查划分为:

test func > test class > test service || test UI

相应的我们可以在开发阶段进行:

func test > class test > service test || UI test

从后往前看 我们是否可以更系统的进行开发阶段的自我检查:

1⃣️UI Test我们做的很多 => 开发完毕 > mock数据 > 人肉看一下不同数据时 UI和功能是否正常

2⃣️service test?=> 服务端通过接口测试做的比较多

3⃣️ 再往前看 class test & func test => 不易触及 进行自我检查的次数比较少


当你的输出是一个App ➡️ 我们可以通过UI进行直接的交互

当你的输出是一个Service ➡️ 我们可以通过接口进行直接的交互

当你的输出是一个Class or function ➡️ 我们可以通过什么进行直接的交互呢?

如果你是AFNetworking的作者 如何进行测试?

1⃣️ 写一个Example App 通过人机交互的方式 进行每一项功能的验证?

2⃣️ 通过单元测试框架 调用每一个待测试的方法 进行功能的验证

今天我们的主题就是这里

通过单元测试 我们可以方便系统的进行 func test & class test

从而可以更系统的进行开发阶段的自我检查 交付测试团队更加健壮的产出

什么是单元测试呢?

1⃣️ 最小可测单元_测试自己写的对外提供功能or计算过程

2⃣️ 不是为了发现bug,是为了提高开发效率,为了我们代码健康的可持续发展

🌰 一些调试很久的疑难问题 往往根源是一些简单低级的小错误引起的

单元测试的优缺点

优点:

1⃣️ 单元测试能保证在加入新功能或修改旧功能时代码的正确性

2⃣️ 单元测试保证在整个开发流程中代码都会被测试,更容易及早发现问题,降低风险

场景:

1⃣️ 发版前修改了基础组件的某个功能 ➡️ 通过单元测试 可以方便低成本的进行回归测试

2⃣️ 代码重构后 ➡️ 功能影响的摸底与评估

3⃣️ 开发过程中 直接测试某个方法 ➡️ 无需build & run整个工程

缺点:

单元测试不能减少研发的代码量,反而会花费很多精力在编写单元测试上,增加了开发成本,而且对开发人员的要求也会更高

单元测试由谁来写?

最好是开发者本人

如何写单元测试?

每一个Test Case的写法有三个步骤:①Mock对象,准备测试数据。②调用要测试的目标API。③验证输出和行为是否正确

iOS项目如何进行单元测试呢?

1⃣️ XCTest in XCode

2⃣️ Kiwi for OC (3rd framework)

3⃣️ Quick for Swift or OC (3rd framework)

XCTest Demo:

TestCaseWritenByXCTest

Quick Demo:

TestCaseWritenByQuick

单元测试应用案例(学习样本)

XCTestWorkInAF
QuickWorkinRAC

单元测试落地计划:

1⃣️ 基础服务 覆盖

2⃣️ 公共组件 覆盖

3⃣️ 基础业务viewModel 覆盖

4⃣️ 重要业务viewModel 覆盖

参考资料:

1⃣️ iOS单元测试基本介绍

2⃣️ Quick

3⃣️ Quick使用配置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,498评论 25 707
  • 简介 测试目的:模拟多种可能性,减少错误,增强健壮性,提高稳定性。 测试种类:在iOS中的通常分为单元测试和UI测...
    i顺颂时宜阅读 9,097评论 0 39
  • 5 | 体验艾尔水村传统生活 文莱河两岸分布有30座高脚屋村落,充满乡野气息,被称为艾尔水村。这里的人几乎都延续着...
    Shirley唐一泓阅读 206评论 0 0
  • 我那时候是多么不喜欢说话啊,像一个刚见到世界的小老鼠,胆怯无措又慌张。 模糊的玩具,很大的操场,戴方形眼镜的老师,...
    会走路的电梯阅读 103评论 0 0