编辑: 我不是阿L | 2019-05-05 |
介绍 2. 程序思维 i. 你应该知道的单元测试 ii. 提高设计能力的有效手段 3. 最佳实践 i. 开始使用AutoLayout 4. 通用组件 5. 技术预研 i. Xcode Server 持续集成与整体架构 ii. 关于 iOS Search API 的相关研究 iii. 带你领略 Swift 的风骚 iv. JavaScriptCore初探 6. 经验总结 i. Invalid Signature问题排查 目录 iOS程序员
2 欢迎来到这里 iOS程序员
3 介绍 iOS程序员
4 程序思维 单元测试,一个不断被强调,又不断被人忽略的话题,想从潘砍绦蛟苯冻筛呒豆こ淌,单元测试,可以说是必不可少的 技能.如何编写合适的测试用例?何时该进行单元测试?单元测试所体现的价值究竟是什么?可以说,有很多实际的困扰阻 碍着一批人,使得这些人被卡在了单元测试的门外,万事起步难,而当你真正的理解了一件事情的意图,就能很容易的从各 个方面入手了. 本篇就我这些年来撰写测试的经验,结合Objective-C这门语言,总结出一些我认为可能对入门者很有帮助的方法,希望能让 更多人进入到单元测试这个沉默的世界,使用它,并爱上它.少年,拿起你手中的XCode,去征服它吧! 为什么要写单元测试?做任何一件事情我们至少要清楚它的动机,否则做了也没太大意义,更别说去做好它.写单元测试也 一样,并不是心血来潮了,就开始写测试用例,如果想让一件事情能够持之以恒,那至少要保证它的动机在我们目前所认知 的范围内能不被撼动.以下是我总结出来的一些动机,欢迎大家品读. 你妈逼你写单元测试了么?你妈可能真的没有,但你的领导却不一定.很多开发主管在听说了单元测试的种种传言后,便开 始把单元测试纳入了绩效考核的范围,使得手下那些根本不懂单元测试的人抓耳捞腮,挤牙膏似得挤出了一大坨不伦不类的 测试用例,之后不更新也不维护. 这种任务式的动机很难持久,而我之所以把它放在第一位,是因为这大概是大部分人最初接触单元测试的方式,起码我就 是.虽然是被逼的,但至少让我们了解了怎样去使用一些单元测试框架(如庞大的[X]Unit家族),只是我们并知道怎么用合 适,以及为什么要这么做. 当经过了被逼的阶段后,我们开始发现,世面上有点名气的开源项目中都会存在大量的单元测试,感觉自己不写点单元测 试,这个feel提不上来啊.于是顶着满脑子的困惑,开始重抄旧刀,仿照着别人的命名与方式,给自己的应用写了些像样的 测试用例. 这个feel并不是特别爽,因为自己很清楚,这些个测试用例写了与不写,似乎并没有什么两样.于是时间拉长点,过了那个 初恋时的甜蜜期,进入平淡期时,很容易就放下了.因为并没有太多值得留恋的,这个动机本身就决定了不会太长久.虽然,最终我们还是和平分手了,但从这一段相处下来的时间里,我们意识到一个问题:单元测试是个好东西,只是现在的我 还配不上它. 逼也逼过了,时髦你也赶了,似乎没有太多理由再让你去拿起单元测试了.但天无绝人之路,有一天你在为团队开发一些中 间组件时,由于它没有界面,没有任何人机交互方式,没办法去验证你写的代码是否正确啊.这下不好办了,你又不想写一 个程序低效的通过人工交互的方式去验证,那时候你就想,作为一个老字号码农,可不能出了些低级Bug丢了这张老脸啊, 没办法,你毅然的接过 XUnit ,这一次你知道要用它来干嘛了. 复合后的你们,相处得应该还是比较愉快的,因为这次你终于觉得不是为了写测试而写测试了,而是它真的很有用,它为你 挽回了很多面子,让你的老脸能继续发热、发光. 当你有了那样一次比较舒畅淋漓的经历后,你可能会开始反思,并试着寻找以前那些深藏在心中问题的答案.当你再次进入 一个新项目时,你会觉得不写单元测试,感觉很多东西都隐隐靠不住,心里不踏实啊!对,你想它了,思念是有重量的,于 你应该知道的单元测试 单元测试的一般动机 被逼的 赶时髦 找个宿主程序 求安慰 iOS程序员